《MATLAB 在常微分方程中的简单应用.docx》由会员分享,可在线阅读,更多相关《MATLAB 在常微分方程中的简单应用.docx(4页珍藏版)》请在三一办公上搜索。
1、MATLAB 在常微分方程中的简单应用论文: MATLAB 在常微分方程中的简单应用 学院:数学与计算机科学学院 班级:数学11 姓名:刘宁 学号:1060211014038 MATLAB 在常微分方程中的简单应用 摘要:Matlab 是一门集数值计算,符号运算和图形处理等多种功能于一体的科学计算软件包.它还包括许多专用工具箱,可以满足不同专业用户的需求。 目前,MATLAB 已经得到相当程度的普及,尤其是在大学校园已经有了相当的普及, 已经深入到各个专业的很多学科.在现在科学研究和工程实践中,很多数学模型都是用微分方程来确定的,很多基本方程本身就是一个微分方程。因此。求解常微分方程是非常重要
2、的,但是,大部分的微分方程目前还难以得到其解析解,因此,人们只有利用计算机强大的计算功能来求其数值解。应用计算机辅助常微分方程的学习、研究分两个方面,一方面可以通过计算机数值计算和绘图迅速发解或探讨某些常微分方程的性态;另一方面是应用数学软件中符号计算功能直接求解某些常微分方程。 关键字:常微分方程;数值解法;二阶龙格;库塔公式 常微分方程的解是一个函数或一族函数。所谓数值解法,就是寻求解函数自变量的一系列离散点上的近似值。 常微方程的数值解法很多,常用的是欧拉公式。 dy=f(x,y)dx考虑微分方程的初问题: y(x0)=y0把微分方程中的导数用折线的斜率代替,得到: yn+1-yn=f(
3、xn,yn) xn+1-xn假设对于不同的n,有xn+1-xn到基本的相同,记为h=xn+1-xnyn+1=,得欧拉公式+yn(h,,其中,fn)xnyh称为步长。 此外,常用的数值计算公式还有后退的欧拉公式,梯形公式,龙格库塔公式。 例 用欧拉公式求下面初值问题的解 dy=x2+x-ydx=0y(0)设计程序如下: x=0;y=0;h=0.01; for i=1:50 y1=y+(x2+x-y)*h; x=x+h;y=y1; yy(i)=y1; end plot(yy,.) hold on; z=zeros(1,50); for u=0.01:0.01:0.5 z(floor(u*100)=
4、-exp(-u)+u2-u+1; end plot(z) 打开MATLAB程序并输入代码 结果见图1 程序的前半部分求得初值问题的数值解并且把数值解绘制出来,是使用小点绘制的,程序的后半部分绘制出了初值问题的解析解,是使用细线绘制的。 该初-x2y=-e+x-x+1。 从图中可以看出用欧拉公式值问题的解析解是求出的数值解与初值问题的解析解还是比较接近的,如果改用更精确的二阶龙格库塔公式,可以求得与解析解更加接近的数值解。 设计程序如下: x=0;y=0;h=0.01; for i=1:50 K1=x2+x-y; K2=(x+h/2)2+(x+h/2)-(y+K1*h/2); y1=y+h*K2
5、; x=x+h;y=y1; end plot(yy,o); hold on z=zeros(1,50); for u=0.01:0.01:0.5 z(floor(u*100)=-exp(-u)+u2-u+1; end plot(z) 在MATLAB程序中输入代码 结果见图2 图1 欧拉公式计算的近似解与解析解 图2 二阶龙格-库塔公式计算的近似解与解析解 从图中可以看出,用二阶龙格库塔公式计算的近似解更接近解析解,在用 Matlab 计算常微分方程的数值解时,其程序的设计是类似的,要想减少误差,应选取较合适的迭代公式。 参考文献 1 MATLAB程序设计应用 谭浩强 著 2 数学建模与数学实验 赵 静 但 琦 主编 3 MATLAB程序设计基础及其应用 梅志红 杨万铨 主编.