Matlab 解常微分方程的初值问题
题目:Matlab 解常微分方程的初值问题
设计目的:
1、熟练掌握Matlab的基本编程方法,及其编程风格。
2、熟练掌握Matlab常用函数的使用。
3、与本专业相关知识相结合,掌握其在程序开发中的应用方法
以及和word、C语言等接口方法。
4、通过计算机数值求解的方式来加深微分方程解的理解。
5、熟悉初等方法可获得解析解之外的数值近似解的求解方法,提
高对差分格式的认识和离散化分析问题的技巧,加深对理论课程的学习和理解,为数学专业和信息与计算科学专业其他后继课程的学习打好基础。
设计内容:
已知一个三阶微分方程:,利用matlab软件求这个三阶微分方程在初值 下的解。
原三阶微分方程可化为:
令 则原三阶微分方程可化为微分方程组 在初值 下的解。
程序流程:
程序代码:
%编写函数文件rigid.m
function dy = rigid(t,y)
dy = zeros(3,1); % a column vector
dy(1) = y(2) ;
dy(2) =y(3);
dy(3) = 2*(1-y(1)^2)*y(3)-y(1)*y(2);
%调用函数ode45求解,时间区间为[0,10]
[t,Y] = ode45(@rigid,[0 10],[1 0 -1])
t =
0
0.0001
0.0001
0.00