一、实验目的: 理解并掌握利用MATLAB绘制常微分方程的积分曲线簇和特解的图形。 |
||||||||||||
二、实验内容 例1 求方程的通解和满足初始条件的特解并绘制图形。 例2 求方程的通解及其满足初始条件的特解,这里为常数。 例3 求三阶非齐次线性方程组的通解和满足初始条件的特解并绘制特解的图形与积分曲线簇。 练习: 1、求解方程,并自行选择适当初值,绘制出积分曲线簇。 2、求解方程,并自行选择适当初值,绘制出积分曲线簇。 3、求方程的通解和特解,并自行选择适当初值进行绘图。 |
||||||||||||
程序代码: 例1 sols=dsolve('Dy=exp(x)*cos(y)^2','x') syms C x y=atan(C+exp(x)); for i=-5:3 ezplot(subs(y,'C',i),[-3,4,-0.5,1.6],1) hold on end y=dsolve('Dy=exp(x)*cos(y)^2,y(0)=pi/3','x') figure;ezplot(y) 例2 syms m x k x t x0 t0 eqn='m*D2x+k*x=0'; gensol=dsolve(eqn,'t') sol=dsolve(eqn,'x(t0)=x0','Dx(t0)=v0') 例3 eqn='D3x+2*D2x+2*Dx=cos(5*t)+sin(4*t)' sols=simplify(dsolve(eqn,'t')) syms C1 C2 C3 t y=(7*cos(4*t))/520 - C1 - (2*cos(5*t))/629 - sin(4*t)/130 - (23*sin(5*t))/3145 + C2*exp(-t)*cos(t) + C3*exp(-t)*sin(t) + 1/8 C=sym([C1,C2,C3]); C0=sym([0.3,0.4,0.2,0.5;0,0.3,-1.5,-0.8;1,0.8,0.5,-0.3]) for i=1:4 ezplot(subs(y,C,[C0(1,i),C0(2,i),C0(3,i)]),[0,15,-1,0.5],1); hold on; end sol0=dsolve(eqn,'x(0)=0,Dx(0)=0,D2x(0)=0','t'); ezplot(sol0,[0,15,0,0.15],2); ezplot(sol0,diff(sol0,'t'),[0,15],3); 练习1 sols=dsolve('Dy=-y/x+sin(x)/x','x') syms C x y=C/x - cos(x)/x; for i=-5:3 ezplot(subs(y,'C',i),[-8,8,-8,8],10) hold on end y=dsolve('Dy=-y/x+sin(x)/x,y(1)=pi/3','x') figure;ezplot(y) 练习2. eqn='Dy=-(2*x*y-sec(x)^2)/(x^2+2*y)'; sols=dsolve(eqn,'x') syms C x y=(C + x^4/4 + 2i/(exp(x*2i) + 1))^(1/2) - x^2/2- (C + x^4/4 + 2i/(exp(x*2i) + 1))^(1/2) - x^2/2 for i=-5:3 ezplot(subs(y,'C',i),[-3,4,-3,2],1) hold on end y=dsolve(eqn,'y(1)=pi/3','x') figure;ezplot(y) 练习3. eqn='Dy=-3*x*y+x*exp(-x^2)' sols=dsolve(eqn,'x') syms C x y= C*exp(-(3*x^2)/2) + exp(x^2/2)*exp(-(3*x^2)/2) for i=-5:3 ezplot(subs(y,'C',i),[-8,8,-8,8],88) hold on end y=dsolve(eqn,'y(0)=2','x') figure;ezplot(y) 程序测试及运行结果: 例1 例2 例3 练习1. 练习2. 练习3.
|
||||||||||||
分析与讨论:
for i=m:k:n 循环体语句 end 其中 i 表示循环变量,m,n 分别为循环初值和循环终值,k 表示步长,缺省时默 认值为 1.当初值大于终值时,步长为负数。每执行完循环体语句集的指令一遍, 循环变量增加一个步长,继续循环,直到超过终值为止。循环结束必须用 end 表示。
|
数学建模(生物数学篇)之 MATLAB在常微分方程求解中的基本应用实例(1/3)
猜你喜欢
转载自blog.csdn.net/qq_59819866/article/details/131453145
今日推荐
周排行