matlab符号计算实例

合集下载

matlab符号运算 多项式

matlab符号运算 多项式

matlab符号运算多项式【提纲】1.MATLAB符号运算简介MATLAB是一款功能强大的数学软件,其中符号运算功能允许用户进行高级数学计算、分析和可视化。

符号运算可以帮助工程师、科学家和数学家在各种领域解决问题,如线性代数、微积分、概率论等。

2.多项式基本概念与MATLAB表示多项式是数学中一个重要的概念,它表示为一个无穷级数,其中包含常数、变量及其幂次。

在MATLAB中,多项式可以用符号表达式表示,如:f(x) = 2x^3 + 4x^2 - 3x + 1。

3.多项式运算实例以下是几个MATLAB中进行多项式运算的实例:- 多项式加法:将两个多项式相加,如f(x) + g(x)。

- 多项式减法:将两个多项式相减,如f(x) - g(x)。

- 多项式乘法:将两个多项式相乘,如f(x) * g(x)。

- 多项式除法:将一个多项式除以另一个多项式,如f(x) / g(x)。

- 多项式求导:对一个多项式求导,如diff(f(x))。

- 多项式积分:对一个多项式进行积分,如int(f(x))。

4.多项式函数与应用MATLAB提供了许多与多项式相关的函数,如:- polyfit:根据一组数据拟合多项式。

- polyval:根据多项式系数计算多项式的值。

- roots:求多项式的根。

- legendre:勒让德多项式。

- laguerre:拉格朗日多项式。

这些函数在信号处理、控制系统、优化等领域具有广泛的应用。

5.总结与建议MATLAB的符号运算功能为多项式计算提供了便捷的工具和函数。

掌握这些功能和函数可以帮助用户在各种应用场景中解决问题。

matlab符号计算练习题目

matlab符号计算练习题目

1 将(x -6)(x -3)(x -8)展开为系数多项式的形式。

2 求解多项式x 3-7x 2+2x +40的根。

3 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。

4 计算多项式乘法(x 2+2x +2)(x 2+5x +4)。

5 计算多项式除法(3x 3+13x 2+6x +8)/(x +4)。

6 对下式进行部分分式展开:27243645232345234+++++++++x x x x x x x x x7 计算多项式9514124234++--x x x x 的微分和积分。

8 用符号函数法求解方程a t 2+b*t +c=0。

9用符号计算验证三角等式:sin(ϕ1)cos(ϕ2)-cos(ϕ1)sin(ϕ2) =sin(ϕ1-ϕ2) 10 因式分解:6555234-++-x x x x 11 ⎥⎥⎦⎤⎢⎢⎣⎡=)sin()log(12x x e x x a f ax ,用符号微分求df/dx 。

12 求代数方程组⎪⎩⎪⎨⎧=+=++002y x c by ax 关于x,y 的解。

13, 用符号函数法求解方程a t 2+b*t +c=0。

(应用solve)14, 因式分解:6555234-++-x x x x (应用syms, factor) 15, ⎥⎥⎦⎤⎢⎢⎣⎡=)sin()log(12x x e x x a f ax ,用符号微分求df/dx 。

(应用syms,diff)16计算极限求极限:n n h n x M hx h x L )1(lim )2(,)ln()ln(lim )1(0-=-+=∞→→ 17 计算导数22d d ,d d ,d d ,sin x y C a y B x y A ax y ====求.18计算不定积分、定积分、反常积分 x x x x I d )22(1222⎰+-+=,x x x x J d cos sin cos 2/0⎰π+=,⎰+∞-=0d e 2x K x .19 符号求和求级数 ∑∞=121n n 的和S, 以及前十项的部分和S1. 20解代数方程和常微分方程例如:求一元二次方程a*x^2+b*x+c=0的根. 21求微分方程x y ='的通解.22求微分方程⎩⎨⎧==+=0)0(' ,1)0('"y y y x y 的特解. 23求微分方程组⎩⎨⎧=+=x y xy x 2''的通解.。

Matlab上机操作2——符号计算

Matlab上机操作2——符号计算

Matlab上机操作2——符号计算1、%创建数值常量和符号常量a1=2*sqrt(5)+pi %创建数值常量a2=sym('2*sqrt(5)+pi') %按符号表达式创建符号常量a3=sym(2*sqrt(5)+pi) %按最接近的两个正整数表示符号常量a4=sym(2*sqrt(5)+pi,'d') %按最接近的十进制浮点数表示符号常量a31=a3-a1 %数值常量和符号常量的计算a5='2*sqrt(5)+pi' %字符串常量2、%创建符号变量和符号表达式f1=sym('a*x^2+b*x+c') %创建符号表达式syms a b c x %创建符号变量f2=a*x^2+b*x+c %创建符号表达式syms('a','b','c','x') %注意这里是syms,不是sym>> sym('a','b','c','x')错误使用sym输入参数太多。

f3=a*x^2+b*x+c; %创建符号表达式syms x y real %创建实数符号变量z=x+i*y; %创建z为复数符号变量real(z) %复数z的实部是实数xsym('x','unreal'); %清除符号变量的实数特性real(z) %复数z的实部3、%比较符号矩阵与字符串矩阵A=sym('[a,b;c,d]') %创建符号矩阵B='[a,b;c,d]' %创建字符串矩阵C=[a,b;c,d] %创建数值矩阵C=sym(B) %转换为符号矩阵whos4、%计算符号矩阵的行列式值、非共轭转置和特征值syms a11 a12 a21 a22A=[a11 a12;a21 a22] %创建符号矩阵det(A) %计算行列式A.' %计算非共轭转置eig(A)%计算特征值5、%符号表达式的代数运算f=sym('2*x^2+3*x+4')g=sym('5*x+6')f+g %符号表达式相加f*g %符号表达式相乘6、%对符号表达式进行任意精度控制并用三种运算方式表示同一符号常量a=sym('2*sqrt(5)+pi')digits %显示默认的有效位数vpa(a) %用默认的位数计算并显示vpa(a,20) %按指定的精度计算并显示digits(15) %改变默认的有效位数vpa(a) %按digits指定的精度计算并显示a1 =2/3 %数值型a2 = sym(2/3) %有理数型digitsa3 =vpa('2/3',32) %VPA型format longa17、%符号变量与数值变量进行转换a1=sym('2*sqrt(5)+pi')b1=double(a1) %转换为数值变量a2=vpa(sym('2*sqrt(5)+pi'),32)b2=numeric(a2) %转换为数值变量b2=numeric(a2)未定义函数或变量'numeric'。

matlab符号运算(共57张)

matlab符号运算(共57张)
(3)limit(F):计算符号函数F的极限值,变量为
findsym确定的默认变量;在未指定目标值时,默认变量趋 近于0; (4)limit(F,x,a,’left’)或limit(F,x,a,’right’):分别计算 函数F的左极限和右极限。
17
第17页,共57页。
>> syms x t;
>> limit(sin(x)/x)
A= [ a, 2*b] [3*a, 0]
3、用函数syms创建矩阵
格式: syms arg1 arg2… 参数
A=[ ]
>> syms a b
A=
>>A=[a,2*b;3*a,0]
[ a, 2*b] [3*a, 0]
15
第15页,共57页。
4、将数值矩阵(jǔ zhèn)转化成符号矩阵
(jǔ zhèn)
ans =
11/15
3
第3页,共57页。
>> 3*sin(3)+pi/2
ans =
1.9942
>> sym('3*sin(3)+pi/2')
ans = 3*sin(3)+pi/2
>> sym(3*sin(3)+pi/2)
ans = 8980881799167258*2^(-52)
>> sym(3*sin(3)+pi/2,'d')
>> real(z) ans = x
>> syms x unreal >> real(z)
ans =
1/2*x+1/2*conj(x)

matlab符号运算(二)

matlab符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 limit(f,x,a): 计算 lim f ( x )
xa
limit(f,a): 计算默认自变量趋向于a时f的极限 limit(f): 计算 a=0 时的极限 limit(f,x,a,’right’):右极限 limit(f,x,a,’left’):左极限
1 2 n 1 n

,以及其前10项的部分和。
>> syms n >> S=symsum(1/n^2,n,1,inf) >> S10=symsum(1/n^2,n,1,10)
x 2 n 1 n

S=1/6*pi^2 S10=1968329/1270080
例:求函数级数
S
>> syms n x >> S=symsum(x/n^2,n,1,inf)
符号矩阵中元素的引用和修改
>> A=sym(’[1+x, sin(x); 5, exp(x)]’) >> A(1,2) >> A(2,2)=sym(’cos(x)’)
Matlab 符号运算(二)
符号矩阵的基本运算
符号矩阵的基本运算与数值矩阵的基本运算相类似。
1) 基本运算符:+、-、*、\、/、
ans=10
ans=2*x+y
ans=10 ans=[2+y,4+y,6+y] ans=[7 10 13]
ans=3*a+b
?
Matlab 符号运算(二)
符号矩阵
使用sym函数直接生成
>> A=sym(’[1+x, sin(ห้องสมุดไป่ตู้); 5, exp(x)]’)

matlab符号求偏导和全微分及其实验

matlab符号求偏导和全微分及其实验
符号求导命令
功能
zx=diff(f(x,y),x)
求x的一阶偏导
Zy=diff(f(x,y),y)
求y的一阶偏导
Dz=zx*dx+zy*dy
Байду номын сангаас求z的全微分
Zxx=diff(zx,x)
求x的二阶偏导
Zxy=diff(z,x,y)
求z的xy混合二阶偏导
Zxn=diff(f(x,y),x,n)
求x的n阶偏导
Zyn=diff(f(x,y),y,n)
求y的n阶偏导
Ux=diff(f(x,y,z),x)
求三元u的x的偏导
Uy=diff(f(x,y,z),y)
求三元u的y的偏导
Uz=diff(f(x,y,z),z)
求三元u的z的偏导
Du=ux*dx+uy*dy+uz*dz
求u的全微分
Uyx=diff(u,y,x)
举例
求u的xy二阶混合偏微分
Uyxy=diff(u,y,x,y)
求u的xyx的三阶混合偏微分
Zx=-diff(F,x)/diff(F,z)
Zy=-diff(F,y)/diff(F,z)
求隐函数的xy的偏微分
Pretty(diff(f(x,y,z),x))
输出一个符合日常书写习惯的表达式
举例
拉格朗日插值多项式数值计算高阶导数MATLAB程序
end
C=Y*L1;L=Y*1;
syms x dyk
for k=1:n1
k
dyk=diff(L,x,k)
end
计算梯度和方向导数的MATLAB程序及其实验
符号求导命令
功能
[FX,FY]=gradient(F)

matlab符号计算实验报告

matlab符号计算实验报告

1. 已知x=6,y=5,利用符号表达式求z =>> syms x >> z=(x+1)/(sqrt(x+3)-sqrt(y)); >> subs(z,x,5) ans =6/(8^(1/2)-y^(1/2)) >> subs(ans,6) ans = 15.83382. 分解因式。

(1)x y -44; >> syms x y >> factor(x^4-y^4) ans =(x-y)*(x+y)*(x^2+y^2)(2)x x x +++64212575151 >> syms x >> factor(125*x^6+75*x^4+15*x^2+1) ans =(5*x^2+1)^33. 化简表达式(1)sin cos cos sin ββββ-1212;>> syms x y >> f=sin(x).*cos(y)-cos(x).*sin(y); >> sfy1=simple(f) 结果:sfy1 =sin(x-y)(2)x x x +++248321>> syms x >> f=(4*x^2+8*x+3)/(2*x+1);sfy1=simplify(f) sfy1 =2*x+34、求下列极限,将完成实验的程序写到文件sy1.m 中:(1) (2) (3) (4)(5) (1)>> syms x >> F1=atan(x)/(x); >> w=limit(F1) w =1(2)>> syms x F2=((1+x)/(1-x))^(1/x); >> w=limit(F2) w =exp(2)(3)>> syms x F3=(x.*log(1+x))/(sin(x^2)); >> w=limit(F3) w =1(4)>> syms x F4=atan(x)/(x); >> w=limit(F4,x,inf) w =0(5)>> syms x F5=(1/(1-x)-1/(1-x^3)); >> w=limit(F5,x,1) w =NaN5、求下列函数的导数,将完成实验的程序写到文件sy2.m 中:1、 >> x = sym('x'); >> y1=(cos(x))^3-cos(3*x); >> diff(y1)ans =-3*cos(x)^2*sin(x)+3*sin(3*x)2、 >> x = sym('x'); >> y2=x.*sin(x).*(log(x)); >> diff(y2)ans =sin(x)*log(x)+x*cos(x)*log(x)+sin(x)3、>> x = sym('x'); >> y3=(x.*exp(x)-1)/sin(x); >> diff(y3)ans =(exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x)4、 x x x x F 1011lim 2⎪⎭⎫ ⎝⎛-+=→31115lim()11x F x x →=---20sin )1ln(lim 3x x x F x +=→x x F x arctan lim 10→=arctan 4lim x x F x →∞=xx y 3cos cos 13-=xx x y ln sin 2=x xe y xsin 13-=cos x y e x =>> x = sym('x');y=cos(x).*exp(x); >> diff(y) ans =-sin(x)*exp(x)+cos(x)*exp(x)5、 >> x = sym('x');y=x^2.*sin(x); >> diff(y) ans = 2*x*sin(x)+x^2*cos(x)6、求下列函数的积分1、syms x a b c;int(sin(a*x).*sin(b*x).*sin(c*x)) ans =-1/4/(c+a-b)*cos((c+a-b)*x)+1/4/(-c+a-b)*cos((-c+a-b)*x)+1/4/(c+a+b)*cos((c+a+b)*x)-1/4/(-c +a+b)*cos((-c+a+b)*x) 2、>> syms x ;int(x^5+x^3-sqrt(x)/4) ans =1/6*x^6+1/4*x^4-1/6*x^(3/2)3、>> syms x ;int(x.*exp(x)/(x+1)^2,x,0,1) ans =1/2*exp(1)-1 4、 >> syms x y;F=int(int('x/(1+x*y)',x,0,1),y,0,1) F =2*log(2)-15、 由曲面22y x z +=,1=z ,2=z 所围成 >> syms x y z;F=int(int(int('x^2+y^2',x,-inf,inf),y,-inf,inf),z,1,2) F =Inf7、求下列级数的和(1) (2)(1)>> syms n;symsum(2*n-1/2^n,1,Inf) ans =Inf(2)syms n;symsum(1/n*(2*n-1),1,Inf) ans =Inf8、将函数 展开成2-x 的幂级数>> syms x;mtaylor(1/(x^2+5*x-3),x-2) 2sin 2y x x=⎰cxdx bx ax sin sin sin dx x x x )4(35⎰-+⎰+102)1(dx x xe x ⎰⎰+D dxdy xy x 1]1,0[]1,0[⨯=D ⎰⎰⎰Vzdxdydz 11212n n n I ∞=-=∑211(21)n I n n ∞==+∑21()53f x x x =+-。

matlab 求解符号方程

matlab 求解符号方程

一、背景介绍Matlab是一种强大的数学软件,常用于数学建模、仿真、数据分析等领域。

在工程和科学研究中,求解符号方程是一个常见的问题,Matlab提供了丰富的符号计算工具,可以帮助用户高效地求解符号方程。

二、Matlab符号计算工具1. 符号变量定义在Matlab中,我们可以通过syms命令定义符号变量,使用符号变量进行符号运算。

例如:```matlabsyms x y```2. 求解符号方程Matlab提供了solve函数,可以用来求解符号方程。

solve函数的基本语法如下:```matlabsol = solve(equations, variables)```其中,equations表示要求解的方程组,variables表示待求解的变量。

solve函数会返回符号方程的解。

三、示例接下来,我们通过一个示例来演示如何使用Matlab求解符号方程。

假设我们要求解如下的符号方程:```matlabsyms xeqn = x^2 - 4*x + 3 == 0;sol = solve(eqn, x);disp(sol);```运行以上代码,可以得到方程x^2 - 4*x + 3 = 0的解为x = 1或x = 3。

四、注意事项在使用Matlab求解符号方程时,有一些需要注意的事项:1. 可能存在多解或无解的情况,在求解后需要对解进行检查;2. 符号计算是一种复杂的运算,可能存在数值精度问题,需要注意数值的精确性;3. 在求解复杂的方程组时,可能需要对方程组进行化简或变形,以提高求解效率。

五、总结通过Matlab的符号计算工具,我们可以较为方便地求解符号方程,实现高效的符号计算。

在工程和科学研究中,这些工具能够帮助我们快速解决复杂的数学问题,提高工作效率。

希望本文的介绍和示例能够帮助读者更好地理解和应用Matlab的符号计算工具。

Matlab在求解符号方程方面具有广泛的应用。

通过利用Matlab的符号计算工具,用户可以轻松地进行符号方程的求解和符号计算,并获得高精度的结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例题 1:
f
=3
1 x3
+
6 x2
+ 12 + 8 x
syms x f=(1/x^3+6/x^2+12/x+8)^(1/3) g1=simple(f) pretty(f) 例题 2: 公因子法简化表达 clear A=sym('[a b;c d]') [V,D]=eig(A) subexpr([V;D])%提取公因式默认 sigma Dw=subexpr(D,'w')%提取公因式 记为 w [RVD,w]=subexpr([V;D],'w') %与上相同 例题 3: 通用置换指令 (1) clear syms a b x; f=a*sin(x)+b (2)RES=subs(RS,old,new)或者 RES=subs(RS,new) f1=subs(f,sin(x),'log(y)') (3)数值代替 若其中还存在符号变量,表达式仍为符号 f2=subs(f,a,3.11) class(f2) (4)胞元代替 f3=subs(f,{a,b,x},{2,5,sym('pi/3')}) class(f3) (7)数组代替 t=0:pi/10:2*pi; f6=subs(f,{a,b,x},{2,3,t}) plot(t,f6) (8)两次替代
y2=subs(y(2),'C3',k); ezplot(y2,[-6,6,-4,8],1) end hold off box on legend('奇解','通解','Location','Best') ylabel('y') title(['\fontsize{14}微分方程',' (y '')^2 – xy '' + y = 0 ','的解']) 例题 13: 代数方程 S=solve('eq1','eq2',…,'eqn','v1','v2',…,'vn') 或者 S=solve(eq1,eq2,…,eqn,v1,v2,…,vn) 慎用要注意顺序 (1)符号解 eq1=sym('d+n/2+p/2-q'); eq2=sym('d+n-p+q-10'); eq3=sym('d-n/4-p+q'); eq4=sym('-8*d-n+p+q-1'); S=solve(eq1,eq2,eq3,eq4,'d','n','p','q'); disp([' d',' n',' p',' q']) disp([S.d,S.n,S.p,S.q]) (2)数值解 A=sym([1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]); b=sym([0;10;0;1]); X1=A\b %X1=inv(A)*b (3)注意,无解析解则给出近视解 clear all,syms x; s=solve('(x+2)^x=2','x') xs=(s+2)^s
例题 12: 微分方程奇解和通解,注意既无显示解又无隐式解则会警告 S 为 空
clear all y=dsolve('(Dy)^2-x*Dy+y=0','x') clf,hold on hy1=ezplot(y(1),[-6,6,-4,8],1); set(hy1,'Color','r','LineWidth',5) for k=-2:0.5:2
(3)
dydx=solve(dgdx1,'dydx'2,….xn)=0, ∂xi ∂x j
=
∂ − ∂x j
∂ ∂ xi
f ( x1, x2 ,..., xn ) f ( x1, x2 ,..., xn )
syms x y;f=(x^2-2*x)*exp(-x^2-y^2-x*y) DyDX=-diff(f,x)/diff(f,y)
(1) clear all reset(symengine) Da=1.2;Dw=1/3; syms sa sw sx sy sz syms A B positive syms C real (2) evalin(symengine,'anames(Properties)') (3) clear A syms (4) evalin(symengine,'anames(Properties)') (5) syms B clear syms (6) evalin(symengine,'anames(Properties)')
4. 符号对象的清除: clear x clear all syms x clear 撤销假设 evalin(symengine,’getprop(x)’) 查看假设
evalin(symengine,’anames(Properties)’) 列出 MuPAD 假设 reset(symengine)
5. 符号数字的精度 digits 默认 32 位 digits(n)或 digits n xs=vpa(x) xs=vpa(x,n) 6. 符号表达式的操作 collect 合并同类项 expand 对指定项展开 factor 因式分解 numden 提取公因式 simplify 恒等式简化
pretty 习惯方式 coeffs 多项式系数 7. 例题
例题 6: 偏导 jacobian(f,v)
syms x1 x2; f=[x1*exp(x2) x2 cos(x1)*sin(x2)]; v=[x1;x2]; Jf=jacobian(f,v) 例题 7: 隐函数求导 (1) syms x g=sym('cos(x+sin(y(x)))=sin(y(x))') dgdx=diff(g,x) % (2) dgdx1=subs(dgdx,'diff(y(x),x)','dydx') % 替换
例题 5: 求导 diff(f,v,n) 默认一阶 r s t u v w x y z 先后关系,x,y,w,z... syms a t x; f=[a,t^3;t*cos(x),log(x)]; df=diff(f,t) dfdt2=diff(f,t,2)%2 阶导 dfdxdt=diff(diff(f,t),t)%2 阶导
符号计算实例
1. 符号计算的优点: 所谓符号计算是指解算数学表达式、方程时,不是在离散化的数值点上进行 的,而是凭借一系列的恒等式和数学定理,通过推理和演算获得的解析结果。这 种计算建立在数值完全准确表达和严格推演的基础之上,因而所得结果完全准 确。当然,也存在者不足,后文将会提到。 符号变量的优点是,使用符号变量运算得到的只是一个解析解,例如, 在符号变量运算过程中 pi 就用 pi 表示,而不是具体的近似数值 3.14 或 3.14159。使用符号变量进行运算能最大限度减少运算过程中因舍入造成的 误差。符号变量也便于进行运算过程的演示。 2. 符号对象的创建: 2.1 单个符号变量 S = sym(A)将非符号对象(如,数字,表达式,变量等)A 转换为符号 对象,并存储在符号变量 S 中。 x = sym('x') 创建符号变量 x,其名字是'x'。示例:alpha = sym('alpha') x = sym('x', 'real') 这 里 假 设 x 是 实 数 , 因 此 有 x 的 共 轭 conj(x)等 于 x。 示 例 : r = sym('Rho','real') k = sym('k', 'positive') %09 版不能用这个方法实现 这里创建一个正的(实数)符号变量。 x = sym('x', 'clear') 创建一个没有额外属性的纯形式上的符号变量 x(例如,创建符号变量 x,但是并没指定它是正的或它是一个实数)。为了兼容旧的 MATLAB 版本, x = sym('x','unreal')的功能和 x = sym('x', 'clear')一样。 S = sym(A, flag) 把一个数值标量或矩阵转换为符号型的对象。这里 flag 参数的值可以 是:'r', 'd', 'e', or 'f',它指定了对浮点数进行转换时的规则: 'f':表示“floating-point”。这样,所有的数值都用 N*2^e 或-N*2^e 这种形 式表示。N 和 e 都为整数,且 N 不小于 0。例如,sym(1/10, 'f')被转换为 3602879701896397/36028797018963968。 'r ': 表 示 “r ati o nal ”( 有 理 数 形 式 )。 'e':表示“estimate error”。这种形式会在'r'的基础上添加一个由包含 eps
例题 8: taylor(f,n,v,a) 得到最高是 n-1 阶 求 8 阶展开 syms x r=taylor(x*exp(x),9,x,0) pretty(r) 例题 9: 级数求和 s=symsum(f,v,a,b)
相关文档
最新文档