ZKX's LAB

分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题 用欧拉方法,改进欧拉方法,2阶龙格-库塔方法,4阶 常微分

2020-12-13知识11

从欧拉方法、改进欧拉方法、2阶龙格-库塔方法、4阶龙格-库塔方法中选择一种方法,每一步从精确解出发计算出下一 欧拉方法 ;nbsp;yn+1=yn+h·f(xn,yn),xn=x0+n·h. ;nbsp;改进欧拉方法 ;nbsp;nbsp;nbsp;nbsp;nbsp;2阶龙格-库塔方法 ;nbsp;yn+1=yn+hk2,k1=f(xn,yn)。

分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题 用欧拉方法,改进欧拉方法,2阶龙格-库塔方法,4阶 常微分

MATLAB中已知系统微分方程及初始值用欧拉法和龙格库塔法解一阶微分方程 function Euler欧拉法和龙格库塔算法解一阶常微分方程源代码例子dy/dx=-y+x+1f=inline('-y+x+1','x','y');微分方程的右边项dx=0.5;x方向步长xleft=0;区域的左边界xright=10;区域的右边界xx=xleft:dx:xright;一系列离散的点n=length(xx);点的个数y0=1;(1)欧拉法Euler=y0;for i=2:nEuler(i)=Euler(i-1)+dx*f(xx(i-1),Euler(i-1));end(2)龙格库塔法RK=y0;for i=2:nk1=f(xx(i-1),RK(i-1));k2=f(xx(i-1)+dx/2,RK(i-1)+k1*dx/2);k3=f(xx(i-1)+dx/2,RK(i-1)+k2*dx/2);k4=f(xx(i-1)+dx,RK(i-1)+k3*dx);RK(i)=RK(i-1)+dx*(k1+2*k2+2*k3+k4)/6;endEuler和Rk法结果比较plot(xx,Euler,xx,RK)hold on精确解用作图syms xrightsolve=dsolve('Dy=-y+x+1','y(0)=1','x');求出解析解rightdata=subs(rightsolve,xx);将xx代入解析解,得到解析解对应的数值plot(xx,rightdata,'r*')legend('Euler','Runge-Kutta','analytic')

分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题 用欧拉方法,改进欧拉方法,2阶龙格-库塔方法,4阶 常微分

用二阶龙格库塔法求解常微分方程的初值问题。 你好,请搜索”VisualC+常微分方程初值问题求解“可以找到相关资料例如:三、使用经典龙格-库塔算法进行高精度求解 龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。同前几种算法一样,该算法也是构建在数学支持的基础之上的。对于一阶精度的欧拉公式有:yi+1=yi+h*K1 K1=f(xi,yi)当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进欧拉公式:yi+1=yi+h*(K1+K2)/2 K1=f(xi,yi)K2=f(xi+h,yi+h*K1)下面的具体程序实现同改进的欧拉算法类似,只需作些必要的改动,下面将该算法的关键部分代码清单列出:…for(floatx=0;x;x+0.1){r=x+expf(-x);K1=x-y[i]+1;file:/求K1K2=(x+(float)(0.1/2))-(y[i]+K1*(float)(0.1/2))+1;file:/求K2K3=(x+(float)(0.1/2))-(y[i]+K2*(float)(0.1/2))+1;file:/求K3K4=(x+0.1)-(y[i]+K3*0.1)+1;file:/求K4y[i+1]=y[i]+(float)(0.1*(K1+2*K2+2*K3+K4)/6);file:/求yi+1r=fabs(r-y[i]);file:/计算误差str.Format(\"y[%d]=fr=f\\r\\n\",i,y[i],r);i+;msg+str;}AfxMessageBox(msg);file:/。

分别用改进的欧拉法和四阶龙格-库塔公式求解微分方程初值问题 用欧拉方法,改进欧拉方法,2阶龙格-库塔方法,4阶 常微分

二阶龙格库塔方法 最低0.27元开通文库会员,查看完整内容>;原发布者:龙吟太虚2012-2013(1)专业课程实践论文二阶Runge-Kutta方法董文峰,0818180123,R数学08-1班一、算法理论由改进的Euler方法得到:凡满足条件式有一簇形如上式的计算格式,这些格式统称为二阶龙格—库塔格式。因此改进的欧拉格式是众多的二阶龙格—库塔法中的一种特殊格式。若取,就是另一种形式的二阶龙格-库塔公式。(1)此计算公式称为变形的二阶龙格—库塔法。二级龙格-库塔方法是显式单步式,每前进一步需要计算两个函数值。由上面的讨论可知,适当选择四个参数y0,a,b,n,可使每步计算两次函数值的二阶龙格-库塔方法达到二阶精度。下面以式子(1)为依据利用VC+6.0编译程序进行问题的求解。二、算法框图三、算法程序#include#include/*n表示几等分,n+1表示他输出的个数*/intRungeKutta(doubley0,doublea,doubleb,intn,double*x,double*y,double(*function)(double,double)){doubleh=(b-a)/n,k1,k2;inti;x[0]=a;y[0]=y0;for(i=0;i;i+){x[i+1]=x[i]+h;k1=function(x[i],y[i]);k2=function(x[i]+h/2,y[i]+h*k1/2);y[i+1]=y[i]+h*k2;}return1;}doublefunction(doublex,doubley){returny-2*x/y;}intmain(){inti;doublex[6],y。

数学建模:狐狸与野兔 用多种方法解下述初值问题,并与其准确解 进行比较.解 取步长.用各方法进行计算对应结果及绝对误差见表(1)、(2)、(3).表(1)xn欧拉公式改进的欧拉公式四阶标准龙格—库塔公式yn误差yn误差yn误差0.01.000000010100.11.0000001.00500001.004837500.21.0100001.0190251.018730900.31.0290001.0412181.040818420.41.0561001.0708021.070320290.51.0904901.1070761.106530930.61.1314411.1494041.14881193表(2)四阶阿当姆斯公式nxn显示公式隐式公式①yn误差yn误差30.3取自准确解1.0408180140.41.070322921.0703196650.51.106535481.1065304160.61.148814811.14881101备 注y1,y2,y3 取自准确解y1,y2 取自准确解① 对本题 关于y为线性,代入隐式公式时,可解出yn+1,因此可直接求隐式公式之解.表(3)四阶阿当姆斯预测—校正公式nxn显示公式隐式公式①Yn误差yn误差40.41.070319921.0703201450.51.106530271.1065307760.61.148811031.14881175备 注y1,y2,y3由四阶标准龙格—库塔公式提供对比以上各表数据可以看到,在相同步长下求解同一问题时,方法的阶数越高,解的精度也越高,。

随机阅读

qrcode
访问手机版