MATLAB教程七:MATLAB符号计算

7.1 符号对象

符号对象的建立:

sym函数:用于建立单个符号对象,其常用调用格式为:

                                 符号对象名=sym(A)

将由 A 来建立符号对象。其中,A 可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。

>> t=sym(2);
>> t+1/2
ans=
	5/2
>> sin(sym(pi/3))
ans =
	3^(1/2)/2
>> sin(pi/3)
ans =
	0.8660

syms命令:可以一次定义多个符号变量,其一般调用格式如下:

             syms 符号变量名1 符号变量名2 … 符号变量名n

其中,变量名不能加单引号,相互之间用空格隔开。

符号对象的运算:

四则运算:符号表达式的四则运算与数值运算一样,用+、-、*、/、^ 运 算符实现,其运算结果依然是一个符号表达式。

>> syms x;
>> f=2*x^2+3*x-5;
>> g=x^2-x+7;
>> f+g
ans =
	3*x^2 + 2*x + 2

关系运算

6种关系运算符:<、<=、>、>=、==、~=。

对应的6个函数:lt()、le()、gt()、ge()、eq()、ne()。

逻辑运算

3种逻辑运算符:&(与)、|(或)和~(非)。

4个逻辑运算函数:and(a,b)、or(a,b)、not(a)和xor(a,b)。

>> syms x;
>> y=and(x>0,x<10)
y=
	0<x & x<10

因式分解与展开运算

  • factor(s):对符号表达式s分解因式,也可以对数进行分解质因子。
  • expand(s):对符号表达式s进行展开。
  • collect(s):对符号表达式s合并同类项。
  • collect(s,v):对符号表达式s按变量v合并同类项。
>> syms a b;
>> s=a^3-b^3;
>> factor(s) 
ans=
	[ a-b, a^2 + a*b + b^2]
>> factor(12)
ans=
2 2 3

>> syms x;
>> y=(x+2)^3;
>> expand(y)
ans =
	x^3 + 6*x^2 + 12*x + 8

其他运算

  • [n,d]=numden(s):提取有理分式的分子分母。
  • c=coeffs(s,x):提取符号表达式的系数。
  • simplify(s):符号表达式化简。
  • p=sym2poly(s):符号多项式转换为多项式系数向量。
  • s=poly2sym§:多项式系数向量转换为符号多项式。

例:求方程ax2+bx+c=0的根。

>> syms a b c x;
>> f=a*x^2+b*x+c
f =
a*x^2 + b*x + c
>> g=coeffs(f,x)
g =
[c, b, a]
>> g=g(end:-1:1)
g =
[a, b, c]
>> roots(g)
ans =
	-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
	-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

符号矩阵:

符号矩阵:也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。

注意:这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。

例:建立符号矩阵并化简

>> syms a b x y alp;
>> m=[a^3-b^3,sin(alp)^2+cos(alp)^2;(15*x*y-3*x^2)/(x-5*y),78]
m =
	[                   a^3 - b^3, cos(alp)^2 + sin(alp)^2]
	[(- 3*x^2 + 15*y*x)/(x - 5*y),                      78]
>> simplify(m)
ans =
	[a^3 - b^3,  1]
	[     -3*x, 78]

7.2 符号微积分

符号函数的极限:

  • limit(f,x,a):求符号函数极限的命令为 limit,即求函数 f 关于变量 x 在 a 点的极限。
  • limit(f,x,a,‘right’) :求函数 f 关于变量 x 在 a 点的左极限。
  • limit(f,x,a,‘left’):求函数 f 关于变量x 在 a 点的右极限。

例:求下列极限
( 1 ) lim ⁡ x → a x m − a m x − a ( 2 ) lim ⁡ n → ∞ ( 1 + 1 n ) n (1)\lim_{x\to a}\frac{\sqrt[m]{x}-\sqrt[m]{a}}{x-a} \quad \quad \quad \quad \quad \quad \quad (2)\lim_{n \to \infty}(1+\frac{1}{n})^n (1)xalimxamx ma (2)nlim(1+n1)n

>> syms a m x n;
>> f=(x^(1/m)-a^(1/m))/(x-a);
>> limit(f,x,a)  
ans =
	a^(1/m - 1)/m
	
>> g=(1+1/n)^n;
>> limit(g,n,inf) 
ans =
	exp(1)

符号函数的导数:

  • diff(f,x,n):即求函数 f 关于变量 x 的 n 阶导数。参数 x 的用法同求极限函数 limit,可以缺省,默认值与 limit 相同,n 的默认值是1。

例:求下列函数的导数
( 1 ) y = 1 + e x , 求 y ’ ( 2 ) z = x e y y 2 , 求 z x ′ 、 z y ′ (1)y=\sqrt{1+e^x},求y’ \quad\quad\quad\quad\quad (2)z=\frac{xe^y}{y^2},求z_x'、z_y' (1)y=1+ex ,y(2)z=y2xey,zxzy

>> syms x y z;
>> f=sqrt(1+exp(x));
>> diff(f) 
ans =
	exp(x)/(2*(exp(x) + 1)^(1/2))
	
>> g=x*exp(y)/y^2;
>> diff(g,x) 
ans =
	exp(y)/y^2 
>> diff(g,y) 
ans =
	(x*exp(y))/y^2 - (2*x*exp(y))/y^3

符号函数的积分:

不定积分

  • int(f,x):求函数 f 对变量 x 的不定积分。

例:求下列不定积分
( 1 ) ∫ ( 3 − x 2 ) 3 d x ( 2 ) ∫ 5 x t 1 + x 2 d t (1)\int(3-x^2)^3dx \quad\quad\quad\quad\quad\quad\quad (2)\int \frac{5xt}{1+x^2}dt (1)(3x2)3dx(2)1+x25xtdt

>> syms x t;
>> f=(3-x^2)^3;
>> int(f)
ans = 
	- x^7/7 + (9*x^5)/5 - 9*x^3 + 27*x 
>> g=5*x*t/(1+x^2);
>> int(g,t) 
ans = 
	(5*t^2*x)/(2*(x^2 + 1))

定积分

  • int(f,x,a,b):求函数 f 对变量 x 的不定积分。其中,a、b分别表示定积分的下限和上限。

例:求下列定积分
( 1 ) ∫ 1 2 ∣ 1 − x ∣ d x ( 2 ) ∫ − ∞ + ∞ 1 1 + x 2 d x ( 3 ) ∫ 2 s i n x 4 x t d t (1)\int_1^2|1-x|dx \quad\quad\quad (2)\int_{-\infty}^{+\infty}\frac{1}{1+x^2}dx \quad\quad\quad (3)\int_2^{sinx}\frac{4x}{t}dt (1)12∣1xdx(2)+1+x21dx(3)2sinxt4xdt

>> syms x t;
>> int(abs(1-x),1,2)   
ans =
	1/2
>> int(1/(1+x^2),-inf,inf)
ans =
	pi
>> int(4*x/t,t,2,sin(x))
ans =
	4*x*(log(sin(x)) - log(2))

7.3 级数

级数求和:

  • symsum(s,v,n,m):求无穷级数的和。其中,s 表示一个级数的通项,是一个符号表达式。v 是求和变量,v 省略时使用系统的默认变量。n 和 m 是求和变量 v 的初值和末值。

例:求下列级数之和
S 1 = 1 + 4 + 9 + 16 + ⋯ + 10000 S 2 = 1 − 1 2 + 1 3 − 1 4 + ⋯ + ( − 1 ) n + 1 1 n + … S 3 = 1 − 1 3 + 1 5 − 1 7 + ⋯ + ( − 1 ) n + 1 1 2 n − 1 + … S_1=1+4+9+16+\dots+10000 \\ S_2=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\dots+(-1)^{n+1}\frac{1}{n}+\dots \\ S_3=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\dots+(-1)^{n+1}\frac{1}{2n-1}+\dots S1=1+4+9+16++10000S2=121+3141++(1)n+1n1+S3=131+5171++(1)n+12n11+

>> syms n;
>> S1=symsum(n^2,1,100) 
S1 =
	338350 
>> S2=symsum((-1)^(n-1)/n,1,inf) 
S2 = 
	log(2) 
>> S3=symsum((-1)^(n-1)/(2*n-1),n,1,inf) 
S3 =
	hypergeom([-1/2, 1], 1/2, -1) - 1          % 超几何函数

泰勒级数:

  • taylor(f,v,a,Name,Value):将函数展开为幂级数。该函数将函数 f 按变量 v 在 a 点展开为泰勒级数,v 的默认值与 diff 函数相同,a 的默认值是 0。 Name 和Value 为选项设置,经常成对使用,前者为选项名,后者为该选项的值。

Name有3个可取字符串:

1、‘ExpansionPoint’:指定展开点,对应值可以是标量或向量。未设置时,展开点为0。

2、‘Order’:指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。

3、‘OrderMode’:指定展开式采用绝对阶或相对阶,对应值为 ‘Absolute’ 或’Relative’。 未设置时取’Absolute’。

例:求函数 f 在 x=1 处的5阶泰勒级数展开式。
f ( x ) = 1 + x + x 2 1 − x + x 2 f(x)=\frac{1+x+x^2}{1-x+x^2} f(x)=1x+x21+x+x2

>> syms x;
>> f=(1+x+x^2)/(1-x+x^2);
>>taylor(f,x,1,'Order',6)
ans =
	2*(x - 1)^3 - 2*(x - 1)^2 - 2*(x - 1)^5 + 3
>> expand(ans) 
ans = 
	- 2*x^5 + 10*x^4 - 18*x^3 + 12*x^2 + 1

例:利用泰勒展开式计算三角函数的值。

>> syms x;
>> f=taylor(cos(x),x,pi)
f =
	(x - pi)^2/2 - (x - pi)^4/24 - 1
>> x=3;
>> eval(f)
ans =
   -0.9900
>> cos(3)
ans =
   -0.9900

7.4 符号方程求解

代数方程符号求解:

  • solve(s):求解符号表达式s的代数方程,求解变量为 默认变量。

  • solve(s,v):求解符号表达式s的代数方程,求解变量 为v。

  • solve(s1,s2,…,sn,v1,v2,…,vn):求解符号表达式 s1,s2,…,sn组成的代数方程组,求解变量分别为v1, v2,…,vn。

例:解方程 a x 2 + b x + c = 0 ax^2+bx+c=0 ax2+bx+c=0

>> syms x y a b c; 
>> solve(a*x^2+b*x+c==0)
ans =
	-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
	-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

常微分方程的符号求解:

  • dsolve(e,c,v):用于求解常微分方程 e 在初值条件 c 下的特解。参数 v 是方程中的自变量,省略时按默认原则处理,若没有给出初值条件 c,则求方程的通解。
  • dsolve(e1,e2,…,en,c1,c2,…,cn,v):用于求解常微分方程组 e1, e2, …, en 在初值条件 c1, c2, …, cn 下的特解,若不给出初值条件,则求方程组的通解。v 给出求解变量,如果没有指定自变量, 则采用默认自变量t。

注意:在MATLAB中,用大写字母D表示导数。例如,Dy表示y’,D2y表示y’‘, Dy(0)=5表示y’(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y’‘’+y’‘+y’-x+5=0。

例:求下列微分方程或方程组的解。
d y d x = x 2 + y 2 2 x 2 { d x d t = 4 x − 2 y d y d t = 2 x − y \frac{dy}{dx}=\frac{x^2+y^2}{2x^2} \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad \begin{cases} \frac{dx}{dt}=4x-2y \\ \frac{dy}{dt}=2x-y \end{cases} dxdy=2x2x2+y2{dtdx=4x2ydtdy=2xy

>> syms x y t;
>> y=dsolve('Dy-(x^2+y^2)/x^2/2',x)
y =
							x
	-x*(1/(C5 + log(x)/2) - 1)
>> [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y',t)
x =
	C8/2 + 2*C7*exp(3*t)
y =
	C8 + C7*exp(3*t)
  • 13
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB在日常计算中的应用》由大量的MATLAB计算实例组成。通俗易懂,图文并茂,资料丰富,实用性强。提供大量MATLAB计算实例以及全部实例的M文件,方便读者使用。既适合初学者,也适合有一定MATLAB基础的爱好者或专业技术人员。 目录 第1章MATLAB基础知识 1.1MATLAB的发展历程 1.2MATLAB的特点 1.3MATLAB的桌面操作环境 1.4MATLAB的常量和变量 1.5MATLAB命令窗口应用例子 1.6小结 第2章多项式处理 2.1多项式的创建 2.2多项式的因式分解 2.3乘积展开成多项式 2.4合并同类项——对多项式合并同类项 2.5多项式加法(或减法) 2.6多项式乘法 2.7多项式除法 2.8求多项式的根 2.9多项式的替换 2.10符号简化 2.11分式通分 2.12求符号函数的反函数 2.13求符号表达式的复合运算 2.14将符号表达式转化为数值表达式 2.15将数值表达式转化为符号表达式 2.16小结 第3章MATLAB绘图 3.1二维绘图 3.1.1画函数图 3.1.2画饼状图 3.1.3画条形图 3.1.4手工绘图 3.1.5在极坐标下绘图 3.2三维绘图 3.2.1画球形图 3.2.2画圆柱体图 3.2.3画三维曲线图 3.2.4画直方图 3.2.5画饼状图 3.2.6画低通滤波器的三维网格图 3.2.7画三维平面图 3.2.8画瀑布图 3.2.9画伞状图 3.2.10画花蕊图 3.2.11画正立方体 3.3小结 第4章复数运算 4.1复数简介 4.1.1复数 4.1.2复数的四种表示形式 4.1.3复数的四则运算 4.1.4复数的其他运算 4.2复数运算程序1 4.2.1复数代数形式和极坐标形式间的相互转换程序 4.2.2求代数形式复数的倒数程序 4.2.3求任一复数平方根的程序 4.2.4求两个代数形式复数之积的程序 4.2.5求两个代数形式复数之商的程序 4.3复数运算程序2 4.3.1求复数的乘幂程序 4.3.2求复数的N次方根程序 4.3.3求复数的指数程序 4.3.4求复数的自然对数程序 4.3.5求复数的常用对数程序 4.3.6求复数的正弦程序 4.3.7求复数的余弦程序 4.3.8求复数的正切程序 4.4小结 第5章矩阵计算 5.1矩阵简介 5.1.1行列式 5.1.2矩阵的加法、乘法和矩阵的转置 5.1.3矩阵的除法——矩阵求逆 5.1.4矩阵的特征值和特征向量 5.2求行列式值 5.2.1求3阶行列式值 5.2.2求4阶行列式值 5.2.3求5阶行列式值 5.2.4求6阶行列式值 5.3矩阵转置 5.3.1将3阶矩阵转置 5.3.2将4阶矩阵转置 5.3.3将5阶矩阵转置 5.3.4将6阶矩阵转置 5.4矩阵相乘 5.4.1两个3阶实矩阵相乘 5.4.2两个4阶实矩阵相乘 5.4.3两个5阶实矩阵相乘 5.4.4一个4×5矩阵与一个5×3矩阵相乘 5.5矩阵求逆 5.5.1求2阶矩阵的逆阵 5.5.2求3阶矩阵的逆阵 5.5.3求4阶矩阵的逆阵 5.5.4求5阶矩阵的逆阵 5.5.5求6阶矩阵的逆阵 5.6求矩阵的特征值和特征向量 5.6.1求2阶矩阵的特征值和特征向量 5.6.2求3阶矩阵的特征值和特征向量 5.6.3求4阶矩阵的特征值和特征向量 5.7小结 第6章解多元一次线性方程组 6.1多元一次方程组简介 6.2解实系数多元一次方程组 6.2.1解实系数二元一次方程组 6.2.2解实系数三元一次方程组 6.2.3解实系数四元一次方程组 6.2.4解实系数五元一次方程组 6.2.5解实系数六元一次方程组 6.3解复系数多元一次方程组 6.3.1解复系数二元一次方程组 6.3.2解复系数三元一次方程组 6.3.3解复系数四元一次方程组 6.3.4解复系数五元一次方程组 6.3.5解复系数六元一次方程组 6.4小结 第7章解一元N次方程(上) 7.1实系数一元一次方程 7.2实系数一元二次方程 7.2.1实系数一元二次方程的求根公式介绍 7.2.2程序实例 7.3实系数一元三次方程 7.3.1卡尔丹公式 7.3.2盛金公式 7.3.3解题实例——解缺少二次项的实系数一元三次方程 7.3.4解题实例——解一般形式的实系数一元三次方程 7.4实系数一元四次方程 7.4.1一元四次方程解法介绍 7.4.2MATLAB解一元四次方程实例 7.5复系数一元一次方程 7.6复系数一元二次方程 7.6.1复系数一元二次方程解法介绍 7.6.2说明 7.6.3实例 7.7复系数一元三次方程 7.8复系数一元四次方程 7.9小结 第8章解一元N次方程(下) 8.1实系数一元代数方程 8.1.1求解实系数一元五次方程的根 8.1.2求解实系数一元六次方程的根 8.1.3求解实系数一元次方程的根 8.1.4求解实系数一元八次方程的根 8.2复系数一元代数方程 8.2.1求解复系数一元五次方程的根 8.2.2求解复系数一元六次方程的根 8.2.3求解复系数一元次方程的根 8.2.4求解复系数一元八次方程的根 8.3小结 第9章超越方程及非线性方程 9.1超越方程说明 9.2解超越方程 9.2.1解指数方程 9.2.2解对数方程 9.2.3解三角方程 9.2.4解无理方程 9.2.5解反三角函数方程 9.2.6解一般超越方程 9.3解非线性方程 9.3.1解一元非线性方程 9.3.2解二元非线性方程组 9.3.3解三元非线性方程组 9.4小结 第10章用图像法解实系数一元N次方程 10.1实系数一元一次方程 10.2实系数一元二次方程 10.3实系数一元三次方程 10.4实系数一元四次方程 10.5实系数一元五次方程 10.6实系数一元六次方程 10.7实系数一元次方程 10.8实系数一元八次方程 10.9小结 第11章用图像法解实系数N元一次方程组 11.1实系数二元一次方程组 11.2实系数三元一次方程组 11.3实系数N元一次方程组 11.4小结 参考文献
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值