代数方程和微分方程求解.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代数方程和微分方程求解

第4章:代数方程和微分方程求解 代数方程组的符号解 代数方程组的符号求解函数为solve函数,函数调用格式为 x=solve(fun1,fun2,…,funm,var1,…,varm) 其中fun1, fun2,…为符号表达式。var1,var2,….为符号变量,指明所求解的变量。如果不指明所求解的变量,则系统根据变量在英文字母中与x的接近程度选择。 solve函数还有另一种调用形式 x=solve(eq1,eq2,…,eqm,var1,…,varm); 其中 eq 是字符串,定义方程。 var也是字符串,指明所求解的变量。 例4.1 求解线性方程组 参考程序 syms x y z a [u,v,w]=solve(a*x+y+z-1,x+a*y+z-... 2,x+y+a*z-3,x,y,z)   输出结果: u = (a - 4)/(a^2 + a - 2) v = 2/(a + 2) w = (3*a)/(a^2 + a - 2) 也可以利用下面的语句求解 s=solve(a*x+y+z-1,x+a*y+z-2,x+y+a*z-3,x,y,z) s = x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] 其中,s是结构形数据。可以用下面的方法显示求得的解 s.x ans = (a - 4)/(a^2 + a - 2) 方程组的符号求解得到的是解析式。其优点是可以得到含未知参数的解,有利于进一步的分析。缺点是计算效率低,且复杂的问题一般得不到解析解。 常微分方程组的符号求解 常微分方程(组)的符号运算函数为dsolve,调用格式为 变量=dsolve(eq1,eq2,…); 其中equ1, equ2等是字符串,描述微分方程。方程形式与solve语句中类似,其中的导数项利用D表示,Dy,D2y分别描述y的一阶和二阶导数。初值和边值条件也利用方程描述。 例4.2:求微分方程 的通解和在初始条件y(0)=1,y’(0)=2下的特解 y=dsolve(D2y-2*Dy+2*y=0) y = C24*exp(t)*cos(t) + C25*exp(t)*sin(t)   y=dsolve(D2y-2*Dy+2*y=0,... y(0)=1,Dy(0)=2) y = exp(t)*cos(t) + exp(t)*sin(t) 代数方程的数值方法 多项式 在matlab语言中,多项式利用行向量表示。如向量 u=[1 2 0 -5 4] 用作多项式函数时,与多项式 对应。因此,多项式运算对应向量的相关运算,如多项式的加法对应向量的加法等。 多项式求根 多项式运算的几个常用函数: P=conv(p1,p2); %多项式乘法 [d,r]=deconv(p1,p2); %多项式除法 Dp=polyder(p); %多项式的导数 Ip=polyint(p) %多项式的积分(原函数) Y=polyval(p,x) %输出多项式p在向量x的值 多项式求根的函数为 r=roots(p) 求得多项式p的所有根。 例4.3:求多项式 的根并在多项式图形中表示。 参考程序:   q =[1 -20 138 -328 -223 1692 -1260]; r=roots(q); x=-2.2:0.05:8; y=polyval(q,x); y1=polyval(q,r); plot(x,y,r,y1,p) xlim([-2.2,8]) legend(polynomial,roots) 线性方程组的求解 线性方程组 Ax=b 可以利用矩阵除法直接得到。但当系数矩阵为稀疏矩阵时,利用稀疏矩阵函数可以得到更高的计算效率。 稀疏矩阵利用函数 A1=sparse(A); 定义。 例4.4:求解n阶线性方程组 对n=1000,分别利用正常方法和稀疏矩阵求解,并比较计算时间。 参考程序: n=1000; A=diag(2*ones(1,n))+diag(ones(1,n-1),1)+diag(ones(1,n-1),-1); A(n,1)=1;b=ones(n,1); tic x=A\b; toc A1=sparse(A); tic x=A1\b; toc 输出结果: Elapsed time is 0.144504 seconds. Elapsed time is 0.009240 seconds.

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档