ZKX's LAB

随机常微分方程的龙格库塔解法 用四阶龙格-库塔求微分方程

2020-08-11知识10

用龙格库塔算法解二阶常微分方程,利用c++编程 另z=y'原来的方程就可以化简成以z'和y,x的方程和y'=z 带入两个初始条件,就可以进行迭代了用matlab编程实现四阶龙格库塔解二元二阶微分方程组 求解二阶微分方程,初始条件还需要给出y1'(0)和y2'(0)。这里暂时按照0处理。function zd530003514a=0.1;b=0.1;Y0=[b-1;0;b;0];解方程[t,Y]=ode45(@ode,[0 10],Y0);y1=Y(:,1);y2=Y(:,3);绘图subplot 211plot(t,y1);subplot 212plot(t,y2);微分方程定义function dY=ode(t,Y)L1=5;L2=0.01;a0=2;b0=2;c0=2;y1=Y(1);y2=Y(3);dY=Y(2);(a0*y2+b0*y2^2+c0*y2^3)-L1^2*L2*y1-L1^2*y1;Y(4);(a0*y2+b0*y2^2+c0*y2^3)-L1^2*L2*y1;用四阶龙格-库塔求微分方程 fun=(s,f)10./(s.^4+8*s.^3+36*s.^2+40*s+10);s0=0;send=1;ds=0.001;s=s0:ds:send;f=0;初值i=1;for ss=s(1:end-1)k1=fun(ss,f(i));k2=fun(ss+ds/2,f(i)+ds/2*k1);k3=fun(ss+ds/2,f(i)+ds/2*k2);k4=fun(ss+ds,f(i)+ds*k3);f(i+1)=f(i)+ds/6*(k1+2*k2+2*k3+k4);i=i+1;endplot(s,f);如何用四阶龙格库塔法ode45求取常微分方程的参数 我通过查文献知道这里们要用到四阶龙格库塔法进行ode45函数法拟合,即求取同时满足。可以给定初值的!数据可以变成这样t=[0 7 32 57 82 107 187 307 467 607];x=[0.9748 0.0105 0.0108 0.0039;0.8088 0.1032 0.0143 0.0737;0.2481 0.1258 0.0941 0.5103;0.0771 0.1264 0.1310 0.6655;0.0307 0.0931 0.1395 0.7367;0.0000 0.0714 0.1155 0.8131;0.0000 0.0599 0.0986 0.8415;0.0000 0.0588 0.0914 0.8498;0.0000 0.0506 0.0715 0.8798];x=[0.9919 0.0043 0.0029 0.0008];跪求四阶龙格库塔公式求 常微分方程的方法 不要代码 只要具体的推倒或者是 解出的方程组 http://baike.baidu.com/link?url=dTC8pz6PJXWpZdsua4rFN_panquCZBoHgwqPNwdvVqgZL_aAEXaCy7vebNX-Sk_vOX9qU5NZUcUtmbnD8hTsA3EjhlRPwwk-rPmjGGne0mNuaYTurUhqP90-jM7DMiVXfBYS1GBXwLd4HVmbBri7UkalIJIcXS9318VED0fqDXsc02gB_qfKXnpwaxfKcyUt就有推导啊指出楼主的一个认识错误 龙格库塔法仅仅是数值求解 并不能说是解出了方程组 数值解再怎么说也只是解析解的近似描述(个人认为 仅供参考)龙格-库塔方法求解三阶常微分方程 第一步:将高阶常微分方程转换成常微分方程组,func(t,x)第二步:调用runge_kutta(@func,y0,h,a,b)例如:二阶常微分方程func。mfunction z=func(t,y)z=[y(2);(1-y(1)^2)*y(2)-y(1)];main。mclear all;close all;clcy0=[0.25;0];h=0.1;a=0;b=20;[t1 y1]=runge_kutta(@rhs_7,y0,h,a,b)

#二阶微分方程#常微分方程#龙格库塔法

随机阅读

qrcode
访问手机版