24小时热门版块排行榜    

查看: 1530  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhl717

铜虫 (小有名气)

[求助] 四阶龙格库特法解微分方程组 已有1人参与

看到文献说用四阶龙格库特法能解此微分方程组,但是自己不太懂,求大神帮忙,谢谢!!


dx/dt=a*x*(1-x/b)*(1+s/c)^(-1)
dp/dt=d*dx/dt+e*[s/(s+f)]*x
ds/dt=g*dx/dt+h*dp/dt+i*x

t为自变量,x、p、s为因变量,a-i  均为参数
回复此楼
加油!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
5楼: Originally posted by zhl717 at 2015-08-18 19:47:35
t,   X,   P,       S
0   0.35  0      99.8
12  2.75  0.55   88.96
24  4.6   3.72   73.49
36  6.27  8.19   61.57
48  8.07  14.12  47.38
60  9.73 19.37  33.63
72  10.41 22.54  24.65
84  10.7  ...

常微分方程组参数拟合,MATLAB可参见:http://muchong.com/bbs/viewthread.php?tid=6425538

其实更推荐用1stopt软件,不过需要用该软件的高版本。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2015-08-19 09:21:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhl717: 金币+20, ★★★很有帮助 2015-08-18 19:24:01
以以下参数取值为例:
a=0.5;
b=0.5;
c=0.5;
d=0.5;
e=0.5;
f=0.5;
g=0.5;
h=0.5;
i=0.5;
并假设 x p s的初值为1 0 0,且实际计算区间为[0,100];MATLAB m文件代码如下:
CODE:
function solve_odes
clear all;clc
global a b c d e f g h i

a=0.5;
b=0.5;
c=0.5;
d=0.5;
e=0.5;
f=0.5;
g=0.5;
h=0.5;
i=0.5;

x0=[1 0 0];
tspan=linspace(0,100,100);

[t x]=ode45(@odes,tspan,x0);
[t x]
figure(1)
subplot(3,1,1);
plot(t,x(:,1));
subplot(3,1,2);
plot(t,x(:,2));
subplot(3,1,3);
plot(t,x(:,3));








function y=odes(t,u)
global a b c d e f g h i

x=u(1);
p=u(2);
s=u(3);

y(1)=a*x*(1-x/b)*(1+s/c)^(-1);
y(2)=d*y(1)+e*(s/(s+f))*x;
y(3)=g*y(1)+h*y(2)+i*x;

y=y';

计算结果:
CODE:
         0    1.0000         0         0
    1.0101    0.7462   -0.0554    0.2712
    2.0202    0.6690    0.0722    0.6509
    3.0303    0.6323    0.2593    1.0537
    4.0404    0.6106    0.4722    1.4628
    5.0505    0.5961    0.6990    1.8734
    6.0606    0.5855    0.9340    2.2839
    7.0707    0.5775    1.1744    2.6938
    8.0808    0.5712    1.4186    3.1027
    9.0909    0.5660    1.6653    3.5106
   10.1010    0.5617    1.9141    3.9175
   11.1111    0.5580    2.1643    4.3236
   12.1212    0.5549    2.4158    4.7287
   13.1313    0.5521    2.6682    5.1331
   14.1414    0.5497    2.9214    5.5367
   15.1515    0.5475    3.1752    5.9395
   16.1616    0.5456    3.4294    6.3417
   17.1717    0.5438    3.6841    6.7433
   18.1818    0.5423    3.9392    7.1443
   19.1919    0.5408    4.1945    7.5447
   20.2020    0.5395    4.4501    7.9447
   21.2121    0.5383    4.7059    8.3441
   22.2222    0.5371    4.9619    8.7431
   23.2323    0.5361    5.2180    9.1416
   24.2424    0.5351    5.4743    9.5398
   25.2525    0.5342    5.7306    9.9375
   26.2626    0.5333    5.9871   10.3349
   27.2727    0.5325    6.2436   10.7319
   28.2828    0.5318    6.5003   11.1286
   29.2929    0.5311    6.7570   11.5250
   30.3030    0.5304    7.0137   11.9211
   31.3131    0.5297    7.2705   12.3168
   32.3232    0.5291    7.5273   12.7123
   33.3333    0.5286    7.7841   13.1076
   34.3434    0.5280    8.0410   13.5026
   35.3535    0.5275    8.2979   13.8973
   36.3636    0.5270    8.5548   14.2918
   37.3737    0.5265    8.8118   14.6861
   38.3838    0.5261    9.0687   15.0801
   39.3939    0.5256    9.3256   15.4739
   40.4040    0.5252    9.5826   15.8676
   41.4141    0.5248    9.8396   16.2610
   42.4242    0.5244   10.0965   16.6543
   43.4343    0.5241   10.3535   17.0473
   44.4444    0.5237   10.6104   17.4402
   45.4545    0.5234   10.8674   17.8329
   46.4646    0.5230   11.1243   18.2255
   47.4747    0.5227   11.3813   18.6179
   48.4848    0.5224   11.6382   19.0101
   49.4949    0.5221   11.8951   19.4022
   50.5051    0.5218   12.1520   19.7941
   51.5152    0.5215   12.4089   20.1859
   52.5253    0.5213   12.6658   20.5775
   53.5354    0.5210   12.9227   20.9691
   54.5455    0.5208   13.1796   21.3604
   55.5556    0.5205   13.4364   21.7517
   56.5657    0.5203   13.6933   22.1428
   57.5758    0.5200   13.9501   22.5338
   58.5859    0.5198   14.2070   22.9247
   59.5960    0.5196   14.4638   23.3155
   60.6061    0.5194   14.7206   23.7062
   61.6162    0.5192   14.9774   24.0967
   62.6263    0.5190   15.2341   24.4871
   63.6364    0.5188   15.4909   24.8775
   64.6465    0.5186   15.7476   25.2677
   65.6566    0.5184   16.0043   25.6579
   66.6667    0.5182   16.2611   26.0479
   67.6768    0.5180   16.5178   26.4378
   68.6869    0.5179   16.7744   26.8277
   69.6970    0.5177   17.0311   27.2174
   70.7071    0.5175   17.2878   27.6071
   71.7172    0.5174   17.5444   27.9967
   72.7273    0.5172   17.8010   28.3862
   73.7374    0.5171   18.0577   28.7756
   74.7475    0.5169   18.3143   29.1649
   75.7576    0.5168   18.5708   29.5542
   76.7677    0.5166   18.8274   29.9433
   77.7778    0.5165   19.0840   30.3324
   78.7879    0.5163   19.3405   30.7214
   79.7980    0.5162   19.5970   31.1104
   80.8081    0.5161   19.8535   31.4992
   81.8182    0.5159   20.1100   31.8880
   82.8283    0.5158   20.3665   32.2768
   83.8384    0.5157   20.6230   32.6654
   84.8485    0.5156   20.8794   33.0540
   85.8586    0.5154   21.1359   33.4425
   86.8687    0.5153   21.3923   33.8310
   87.8788    0.5152   21.6487   34.2194
   88.8889    0.5151   21.9051   34.6077
   89.8990    0.5150   22.1615   34.9959
   90.9091    0.5149   22.4179   35.3841
   91.9192    0.5148   22.6742   35.7723
   92.9293    0.5147   22.9306   36.1604
   93.9394    0.5146   23.1869   36.5484
   94.9495    0.5145   23.4432   36.9364
   95.9596    0.5144   23.6995   37.3243
   96.9697    0.5143   23.9558   37.7121
   97.9798    0.5142   24.2121   38.0999
   98.9899    0.5141   24.4684   38.4877
  100.0000    0.5140   24.7246   38.8754

四阶龙格库特法解微分方程组
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-08-18 16:24:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhl717

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-08-18 16:24:40
以以下参数取值为例:
a=0.5;
b=0.5;
c=0.5;
d=0.5;
e=0.5;
f=0.5;
g=0.5;
h=0.5;
i=0.5;
并假设 x p s的初值为1 0 0,且实际计算区间为;MATLAB m文件代码如下:
function solve_odes
clear all;clc
...

谢谢啊,我如果不赋予参数具体的数值,能不能解出带有参数的方程解啊?
加油!!!
3楼2015-08-18 19:21:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
3楼: Originally posted by zhl717 at 2015-08-18 19:21:06
谢谢啊,我如果不赋予参数具体的数值,能不能解出带有参数的方程解啊?...

恐怕不行。龙格库塔法本身就是求数值解,无法给出含参数的解。

[ 发自小木虫客户端 ]
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-08-18 19:40:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见