- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 MALB符号计算
【例3.23】 求方程ax2+bx+c=0和sinx=0的解。 f1=sym(a*x^2+b*x+c) %无等号 f1 = a*x^2+b*x+c solve(f1) %求方程的解x ans = -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a) f2=sym(sin(x)) f2 = sin(x) solve(f2,x) ans = 0 程序分析:当sinx=0有多个解时,只能得出0附近的有限几个解。 【例3.24】 求三元非线性方程组 的解。 eq1=sym(x^2+2*x+1); eq2=sym(x+3*z=4); eq3=sym(y*z=?1); [x,y,z]=solve(eq1,eq2,eq3) %解方程组并赋值给x、y、z x = ?1 y = ?3/5 z = 5/3 程序分析:输出结果为“结构对象”,如果最后一句为“S=solve(eq1,eq2,eq3) ”,则结果如下。 S = x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] MATLAB提供了dsolve命令,可以用于对符号常微分方程进行求解。 语法: dsolve(eq, con, v) %求解微分方程 dsolve(eq1,eq2…, con1,con2…, v1,v2…) %求解微分方程组 说明:eq为微分方程;con是微分初始条件,可省略;v为指定自由变量,若省略则默认为x或t为自由变量;输出结果为结构数组类型。 (1)当y是因变量时,微分方程eq的表述规定为: y的一阶导数 或 表示为Dy; y的n阶导数 或 表示为Dny。 (2)微分初始条件con应写成y(a)=b,Dy(c)=d的格式;当初始条件少于微分方程数时,在所得解中将出现任意常数符C1、C2……,解中任意常数符的数目等于所缺少的初始条件数。 【例3.25】 求微分方程 ,y(1)=0,y(0)=0的解。 y=dsolve(x*D2y?3*Dy=x^2,x) %求微分方程的通解 y = C3*x^4 - x^3/3 + C2 y=dsolve(x*D2y?3*Dy=x^2,y(1)=0,y(0)=0,x) %求微分方程的特解 y = x^4/3 - x^3/3 【例3.26】 求微分方程组 的解。 [x,y]=dsolve(Dx=y,Dy=?x) x = C8*cos(t) + C7*sin(t) y = C7*cos(t) - C8*sin(t) 程序分析:默认的自由变量是t,C1、C2为任意常数,程序也可指定自由变量,结果相同: [x,y]=dsolve(Dx=y,Dy=?x,t) 3.7.1 符号函数的绘图命令 1.ezplot和 ezplot3命令 ezplot命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维曲线。 语法: ezplot(F,[xmin,xmax],fig) %画符号表达式的图形 说明:F是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[-2?,2?];fig是指定的图形窗口,省略时默认为当前图形窗口。 【例3.27】 绘制线性系统 的相平面图,如图3.4所示。 相平面图以x和导数 为坐标轴,在每个时刻t,状态x和导数 按时间先后顺序绘制系统状态运动轨迹。 syms x; x1=dsolve(D2x+0.25*x=0,x(0)=1,Dx(0)=0) %初始值为1 x1 = cos(t/2) dx1=diff(x1) dx1 = -sin(t/2)/2 ezplot(x1,dx1,[-100,100]);hold on %绘制相平面图 x2=dsolve(D2x+0.25*x=0,x(0)=2,Dx(0)=0); %初始值为2 dx2=diff(x2); ezplot(x2,dx2,[-100,100]); x3=dsolve(D2x+0.25*x=0,x(0)=3,Dx(0)=0); %初始值为3 dx3=diff(x3); ezplot(x3,dx3,[-100,100]); 语法: ezplot3(x,y,z,[tmin,tmax],animate) %绘制三维曲线 【例3.28】 用ezplot3绘制三维符号表达式曲线,如图3.5所示。 x=sym(sin(t
文档评论(0)