matlab符号表达式 matlab表示分段函数

符号表达式

Help Search: Symbolic MathToolbox

第一节

包括的内容有微积分、线性代数、化简代数表达式、方程求解、特殊的数学函数、变量精度算法和数学变换

微积分:微分、积分、极限、求和(西格马)、泰勒级数

线性代数:求逆、行列式、特征值、奇异值分解、符号矩阵的范数形势

化简代数表达式:下详

方程求解:代数方程和微分方程的符号和数值求解

特殊的数学函数:一些经典应用数学的特殊函数

变量精度算法:以任意精度数值估算符号型数学表达式

数学变换:傅里叶变换、Laplace变换、Z变换和这些变换相应的反变换

工具箱中所有的符号表达式的计算都是在Maple内核下执行的。Maple系统最先主要由加拿大的沃特卢大学(University ofWaterloo)开发的,后来由瑞士的一个技术部门发展,最终由Waterloo Maple公司商业化运作。

The Symbolic MathToolboxes包含了两个子工具箱

基本的符号数学工具箱:它是100多个Matlab函数的集合,同过使用Matlab语言自然扩展的语法和类型来访问Maple内核入口,从而条用Maple函数。另外,他还允许访问Maple线性代数包中函数

扩展的符号数学工具箱:增加访问所有Maple非图形化的程序包、Maple编程特性、用户自定义程序。用这两个工具箱,可以自己编写M文件来访问Maple函数和Maple工作空间。

关于如何启动自己下载的Maplelibrary,参考Matlab帮助

第二节

符号对象

符号数学工具箱定义了Matlab的一个新的数据类型就是符号对象,这个符号对象可以是变量、表达式、矩阵等。也就是说它是一种特殊符号字符的新数据结构。

在Matlab中,典型的数据类型为double型,Matlab会根据输出格式自动的截断表达式计算结果,显示指定精度的数值型结果。而通过符号对象可以计算结果是以一个字符来表示相应的符号结果。例:sqrt(2) ans =1.414  a =sqrt(sym(2))  a=2^(1/2)

Sym syms创建符号变量和表达式

 定义符号变量和表达式 x =sym('alpha') x输出为alpha

rho = sym('(1 +sqrt(5))/2') 然后通过符号变量rho可以计算各种各样的符号计算

如果要定义一个含有多个符号的表达式f=sym('a*x^2 + b*x + c'),此时f不能用来作为  较高级的微分积分等运算,必须先明确定义每一个符号:symsa b c x

  Sym 可以用来将数值类型变量值转换成符号类型

x =sym('x','real') syms x yreal 可以指定符号变量的类型

sym可以用来定义抽象函数f = sym('f(x)') df = (subs(f,'x','x+h') -f)/'h'

sym可以访问Maple中的函数kfac = sym('k!')  subs(kfac,k,6)

sym 可以创建符号矩阵syms a b c A= [a b c; b c a; c a b]

注意:对于定义常数的符号变量时必须采用f= sym('5')形式。

Syms一旦定义后所有的符号都从定义开始生效,前面相同的定义只对syms前   起作用

Findsym(f) 用来找出符号变量f中的符号变量,

Findsym(f,1)用来查找符号变量f中的默认变量

Subs(f,a,b)用符号新符号变量b,替换f中的符号变量a,当然b可以是数字

用户可以自己定义符号函数。通过在@sym 文件夹目录下创建M-文件,来建立自己的符号函数:此时可以扩充到多个参变量的情况

function z =sinc(x)

%SINC The symbolic sincfunction

%sin(x)/x. This function

%accepts a sym as the input argument.

ifisequal(x,sym(0))

z = 1;

else

z = sin(x)/x;

end

微积分类函数列表

Diff计算符号微分

Jacobian 计算雅可比矩阵

Limit 求符号函数的极限

Int 求符号函数的积分

Symsum 符号函数关于某个变量求和

Taylor 求符号函数的有限项泰勒展开式

符号表达式的化简和替换

化简

数学表达式有各种不同的形式,对于具体问题,他们各具特点:例如对于多项式有普通的降幂排列x的幂的多项式,也可以写成因子乘积,还可以写成嵌套形式。工具箱应用各种代数的和三角法恒等式把一个函数的表达式转换成另外一种等价的表达式。

collect(f)把f看成一个变量为x多项式,然后进行计算得到所有关于x幂的系数。也可以指定变量得到指定变量的降幂系数形式。

Expand(f)将表达式展开成每项最简单函数的表达式,合并相同项,不限于多项式

Horner(f)将符号多项式表达式变换成嵌套使得表达式 例如f=x^3-6*x^2+11*x-6

horner(f)= -6+(11+(-6+x)*x)*x

factor(f)如果f是一个有理数多项式,返回表达式的低次幂的有理数多项式因子乘积,如果找不到返回f,f可以是符号表达式矩阵

simplify(f)利用大量的代数恒等式包括求和、整数幂、开方、分数幂以及大量的函数恒等式包括三角函数、指数函数、对数函数、贝塞尔函数、超几何分布函数、伽马函数来对表达式进行化简

simple(f)也是一种化简的函数,但他是一个非数学目的的化简,仅仅是找到包含最小字符数的表达式,但这种化简也是在其他化简的基础上进行,所以也可以得到比较满意的结果。

替换

pretty(s)用来对符号表达式显示为正常可读性的形式

一般Matlab为了表达形式的简单,通常会用大%n,n为整数型数字来表达一个子表达式,这个子表达式会在结果中多次出现,所以用%n可以简化。

subexpr(s)将表达式s中的子表达式以符号表达式形式存储在列向量sigma中

v = subexpr(v,'S')Matlab会将V表达式中多次出现的长的表达式用S来替换

subs(S,{a,b,c},{10,2,10})替换符号表达式中a,b,c为相应的数值

subs还可以用一个列向量数值来替换S中的一个变量得到结果是列向量,如果结果是数值的话,可以用double将其转换

变精度算符

Matlab中有三种算符操作

Numeric浮点数算术

Rational准确地符号算术

VPA可变精度算术

例如:

format long1/2+1/3 返回长整型的数值计算结果

sym(1/2)+1/3返回一个有理符号计算结果

digits(25)vpa('1/2+1/3') 返回精度为25的数值计算结果

浮点数数值计算是这三个运算中最快的,而且要求的内存也最少,但是结果不是最精确的。

一般他的输出由format定义。

符号有理运算是最耗时间和内存的,但结果最为精确。

符号表达式的线性代数运算

基本的矩阵运算和数值运算中一致

H=hilb(3)产生一个3*3的Hilbert矩阵,H =sym(H) 可以对H进行任意的矩阵运算了

同时如果H是符号表达式

Inv求逆,det求行列式,null求H的零空间,colspace求H的列空间

Eig求矩阵H的特征值和特征向量

Poly计算H的特征多项是

[V,J] =jordan(A) 通过相似变换得到A的Jordan矩阵

[U,S,V] =svd(A); 奇异值分解只能针对可变精度和浮点数据

符号表达式求解代数方程

solve(S)求S=0的解

s =solve('cos(2*x)+sin(x)=1') 也可以是方程形式

[x,y] =solve(x^2*y^2, x-y/2-alpha) 也可以求代数方程组

dsolve('Dy=1+y^2')计算普通微分方程的符号解,通过字母D来表示微分D2,D3,Dn表示n阶微分。默认的自变量是t,这个自变量可以改变,同时还可以给出初始条件。因变量紧跟在D的后边。

y =dsolve('Dy=1+y^2','y(0)=1') 给出初始条件

y =dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x');给出自变量

S = dsolve('Df =3*f+4*g', 'Dg = -4*f+3*g') 可以求解微分方程组

特殊的数学函数

超过50个常用的数学函数可以在这个工具箱中获得。这些函数通过M文件获得,他们都只能数值计算给定参数的函数值。

help mfunlist用来查询工具箱中的这些可用的函数,从显示列表中,例如可以找到双曲余弦积分被定义为Chi,带有复参数。

Mhelp Chi获得更加详细的帮助

z = [2+i 04.5];

w =mfun('Chi',z) 其调用过程

mfun中能调用的这些特殊函数有:

Airy Functions

BinomialCoefficients

Riemann ZetaFunctions

Bernoulli Numbers andPolynomials

Euler Numbers andPolynomials

HarmonicFunction

ExponentialIntegrals

LogarithmicIntegral

Sine and CosineIntegrals

Hyperbolic Sine and CosineIntegrals

Shifted SineIntegral

Fresnel Sine and CosineIntegral

Dawson's IntegralError Function

Complementary ErrorFunction and its Iterated Integrals

Gamma Function Logarithmof the Gamma Function

Incomplete GammaFunction

DigammaFunction

PolygammaFunction

Generalized HypergeometricFunction

BesselFunctions

Incomplete EllipticIntegrals

Complete EllipticIntegrals

Complete EllipticIntegrals with Complementary

Modulus BetaFunction

DilogarithmIntegral

Lambert's WFunction

Dirac Delta Function(distribution)

Heaviside Function(distribution)

工具箱扩充的正交多项式

Gegenbauer

Hermite

Laguerre

GeneralizedLaguerre

Legendre

acobi

Chebyshev of the First andSecond Kind

如何使用Maple函数

Maple可以让你直接访问Maple函数。这个函数以符号对象、字符串、double作为输入,输出和输入相应的结果。还可以使用maple函数编译你所编写的符号数学程序。

例如maple('gcd(14,21)') 用maple调用maple内核中的gcd来求两个证书的最大公因数

maple('gcd(x^2-y^2,x^3-y^3)')求最大公因子

如果你想用maple命令在matlab环境下的任何地方使用gcd,你可以编制一个M文件来表示它。例如

function g = gcd(a,b)

g = maple('gcd',a,b);

江这个文件保存到目录toolbox/symbolic/@sym下,就可以随意调用gcd了

对于矩阵的处理可以如下

function y =sin1(x)

for k = 1:prod(size(x))

y(k) = maple('sin',x(k));

end

y =reshape(y,size(x));

效率更高的方法,只访问一次maple

function y =sin2(x)

if prod(size(x)) ==1

% scalar case

y = maple('sin',x);

else

% array case

y = maple('map','sin',x);

end

Maple命令提供了两种编译设备:跟踪方式(trace mode)和状态输出参数(Status Output Argument)

maple traceon

a = sym('a');

exp(2*a)

状态输出参数

[result, status] =maple('discrim', a*x^2+b*x+c)

扩展的符号数学工具箱

扩展的符号数学工具箱允许访问所有的非图形化Maple包、Maple编程特性和Maple程序。

Maple编程特性包含了循环和条件表达。

也可以通过扩展符号数学工具箱使用特别的程序库或者程序包。

mhelpindex[packages] 同过它来获得Maple包的名字

mhelporthopoly 获得orthopoly的信息

用maple来装载这个函数包,这样就在Maple空间中装载了这些函数,然后就可以正常使用了

Access To Maple

Maple  AccessMaple kernel

Mapleinit Initialize Maple

Mfun Numericuation of Maple functions

matlab符号表达式 matlab表示分段函数

Mhelp Maplehelp

Mfunlist Listof functions for mfun

Procread Install a Maple procedure

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/87879.html

更多阅读

MATLAB 各种 对数函数 用法以及实例 matlab 对数函数

MATLAB 各种 对数函数 用法以及实例——简介在MATLAB运算当中,我们常常需要求对数,在编写M文件的过程中,我们也需要表示对数,下面我就通过一些示例介绍一下如何在MATLAB中求对数。MATLAB 各种 对数函数 用法以及实例——工具/原料MATLA

MATLAB中single简介 matlab中single函数

matlab中single函数把一个矩阵中所有元素都变为单精度的。在matlab的命令窗口中输入docsingle或者help single就可以获得函数的帮助信息。  在matlab中双精度用double表示。程序示例  下面是一个例子:  % single_example  cl

声明:《matlab符号表达式 matlab表示分段函数》为网友调的华丽分享!如侵犯到您的合法权益请联系我们删除