matlab实验七__常微分方程.docVIP

  • 5
  • 0
  • 约1.6千字
  • 约 8页
  • 2021-10-15 发布于江苏
  • 举报
matlab实验七__常微分方程 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 实验七 常微分方程 【实验目的】 1.了解常微分方程的根本概念。 2.了解常微分方程的解析解。 3.了解常微分方程的数值解。 4. 学习、掌握MATLAB软件有关的命令。 【实验内容】 如以下图所示,一根长l的无弹性细线,一端固定,另一端悬挂一个质量为m的小球。在重力的作用下小球处于平衡位置。假设使小球偏离平衡位置一定角度θ,放开它,它就会沿圆弧摆动。在不考虑空气阻力的情况下,小球会做一定周期的简谐运动。利用牛顿第二定理得到如下的微分方程 问该微分方程是线性还是非线性的?是否存在解析解?如果不存在解析解,能否求出其近似解? θ θ 【实验准备】 MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。 matlab求解微分方程命令dsolve,调用格式为: dsolve(‘微分方程’)给出微分方程的解析解,表示为t的函数. dsolve(‘微分方程’,‘初始条件’)给出微分方程初值问题的解,表示为t的函数. dsolve(‘微分方程’,‘变量x’)给出微分方程的解析解,表示为x的函数. dsolve(‘微分方程’,‘初始条件’,‘变量x’)给出微分方程初值问题的解,表示为x的函数. 【实验重点】 1.常微分方程的解析解与数值解的计算 【实验难点】 1.常微分方程的解析解与数值解的计算 【实验方法与步骤】 练习1 求以下微分方程的解析解。 〔1〕 〔2〕 〔3〕 方程〔1〕求解的MATLAB代码为 clear s=dsolve(dy=a*y+b) 结果为 s=-b/a+exp(a*t)*C1 方程〔2〕求解的MATLAB代码为 clear s=dsolve(d2y=2*x-y),y(0)=0,dy(0)=1,x) simplify(s) %以最简形式显示s 结果为 s=(-1/6*cos(3*x)-1/2*cos(x))*sin(x)+(-1/2*sin(x))+sin(3*x))*cos(x)+5/3*sin(x) ans=-2/3*sin(x)*cos(x)+5/3*sin(x) 方程〔3〕求解的MATLAB代码为 clear s=dsolve(df=f+g,dg=g-f,f(0)=1,g(0)=1) simplify(s.f) %s是一个构造 simplify(s.g) 结果为 ans=exp(t)*cos(t)+exp(t)*sin(t) ans=exp(t)*sin(t)+exp(t)*cos(t) 练习2 求解微分方程 先求解析解,再求数值解,并进展比拟。由 close s=dsolve(dy=y+t+1,y(0)=1,t) simplify(s) 可得解析解为 function f=fun8(t,y) f=y+t+1; 再运行相应的MATLAB代码: clear;close;t=0:0.1:1; y=t+exp(-t);plot(t,y);%化解解析的图形 hold on; %保存已经画好的图形,如果下面再画图,两个图形合并在一起 [t,y]=ode45(fun8,[0,1],1]; plot(t,y,ro); %画数值图形,用红色小圈画 xlabel(t),ylabel(y) 运行结果见图7.2。 由图7.2可见,解析解和数值解吻合地很好。 【练习与思考】 1. 求以下微分方程的解析解。 a)一阶线性方程; b)贝努利方程; c)高阶线性齐次方程。 的解析解和数值解,并进展比拟。

文档评论(0)

1亿VIP精品文档

相关文档