MATLAB 在常微分方程中的简单应用 2 联系客服

发布时间 : 星期五 文章MATLAB 在常微分方程中的简单应用 2更新完毕开始阅读d718d181240c844769eaeed5

论文:

MATLAB 在常微分方程中的简单应用

学院:数学与计算机科学学院

班级:数学11 姓名:刘宁

学号:1060211014038

MATLAB 在常微分方程中的简单应用

摘要:Matlab 是一门集数值计算,符号运算和图形处理等多种功能于一体的科学计算软件包.它还包括许多专用工具箱,可以满足不同专业用户的需求。 目前,MATLAB 已经得到相当程度的普及,尤其是在大学校园已经有了相当的普及, 已经深入到各个专业的很多学科.在现在科学研究和工程实践中,很多数学模型都是用微分方程来确定的,很多基本方程本身就是一个微分方程。因此。求解常微分方程是非常重要的,但是,大部分的微分方程目前还难以得到其解析解,因此,人们只有利用计算机强大的计算功能来求其数值解。应用计算机辅助常微分方程的学习、研究分两个方面,一方面可以通过计算机数值计算和绘图迅速发解或探讨某些常微分方程的性态;另一方面是应用数学软件中符号计算功能直接求解某些常微分方程。

关键字:常微分方程;数值解法;二阶龙格;库塔公式

常微分方程(组)的解是一个函数或一族函数。所谓数值解法,就是寻求解函数自变量的一系列离散点上的近似值。 常微方程的数值解法很多,常用的是欧拉公式。

?dy??f(x,y)dx?考虑微分方程的初问题: ??y(x0)?y0把微分方程中的导数用折线的斜率代替,得到:

yn?1?yn?f(xn,yn)

xn?1?xn假设对于不同的

n

,有

xn?1?xn到

相同,记为

h?xn?1?xnyn?1?,得欧拉公式

?yn(h,,其中,fn)xnyh称为步长。

此外,常用的数值计算公式还有后退的欧拉公式,梯形公式,龙格-库塔公式。

例 用欧拉公式求下面初值问题的解

?dy?x2?x?y??dx??0?y(0)

设计程序如下:

x=0;y=0;h=0.01; for i=1:50 y1=y+(x^2+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))=-exp(-u)+u^2-u+1; end plot(z)

打开MATLAB程序并输入代码

结果见图1

程序的前半部分求得初值问题的数值解并且把数值解绘制出来,是使用小点绘制的,程序的后半部分绘制出了初值问题的解析解,是使用细线绘制的。 该初

?x2y??e?x?x?1。 从图中可以看出用欧拉公式值问题的解析解是

求出的数值解与初值问题的解析解还是比较接近的,如果改用更精确的二阶龙格

-库塔公式,可以求得与解析解更加接近的数值解。

设计程序如下:

x=0;y=0;h=0.01;