24小时热门版块排行榜    

查看: 3250  |  回复: 5

zhl717

铜虫 (小有名气)

[求助] matlab拟合微分方程组中的参数 已有2人参与

最近一直在看matlab求解微分方程组中参数问题,但是由于本人以前没有接触过matlab,所以还是不太懂,请懂的大神帮忙写一下,谢谢!!

有高版本1st opt的大神也可以帮忙跑一下,上回发了一个帖子,没人回应,谢谢各位!!

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  均为参数

数据如下:
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  27.61  11.19
96  10.53 32.49  3.2
108 10.56 35.62  0
120 10.59 37.58  0
132 10.4  38.44  0
144 10.77 39.88  0
回复此楼

» 本帖@通知

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

加油!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhl717: 金币+5, ★★★很有帮助 2015-08-31 17:03:01
要拟合九个参数,这种问题还是推荐用1stOpt,参数个数太多,用MATLAB比较困难。
下面给出MATLAB参考代码,代码中初值k0可以试着调一下,我初步调了一下初值,拟合效果不好。
CODE:
function k1k2k3
format long
clear all
clc
tspan = 0:12:144;
x0 = [0.35  0      99.8];

k0 = [0.5 8 1.5 2 -0.5 0.1 0.5 5 -0.01];   %k的初值,最需要调节

lb = [1 1 1 1 1 1 1 1 1 ]*-inf;
ub = [1 1 1 1 1 1 1 1 1]*inf;

data=...
    [


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  27.61  11.19
96  10.53 32.49  3.2
108 10.56 35.62  0
120 10.59 37.58  0
132 10.4  38.44  0
144 10.77 39.88  0
];
yexp = data(:,2:4);
options=optimset('MaxFunEvals',1500);

[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,options,tspan,x0,yexp);      
ci = nlparci(k,residual,jacobian);

[t uu]=ode45(@KineticsEqs,tspan,x0,[],k);
uexp=[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  27.61  11.19
96  10.53 32.49  3.2
108 10.56 35.62  0
120 10.59 37.58  0
132 10.4  38.44  0
144 10.77 39.88  0
];
figure(1)

size(uexp(:,2));
size(uexp(:,3));
size(uexp(:,4));
size(uu(:,1));
size(uu(:,2));
size(uu(:,3));

R1_Square=1-sum((uexp(2:end,2)-uu(2:end,1)).^2)./sum((uexp(2:end,2)-mean( uu(2:end,1)  )).^2);
R2_Square=1-sum((uexp(2:end,3)-uu(2:end,2)).^2)./sum((uexp(2:end,3)-mean( uu(2:end,2)  )).^2);
R3_Square=1-sum((uexp(2:end,4)-uu(2:end,3)).^2)./sum((uexp(2:end,4)-mean( uu(2:end,3)  )).^2);



plot(tspan,uexp(:,2),'or',tspan,uu(:,1),'-r',tspan,uexp(:,3),'>b',tspan,uu(:,2),'b-',tspan,uexp(:,4),'*k',tspan,uu(:,3),'k-')


fprintf('\n\tk1=%.9f',k(1))
fprintf('\n\tk2=%.9f',k(2))
fprintf('\n\tk3=%.9f',k(3))
fprintf('\n\tk4=%.9f',k(4))
fprintf('\n\tk5=%.9f',k(5))
fprintf('\n\tk6=%.9f',k(6))
fprintf('\n\tk7=%.9f',k(7))
fprintf('\n\tk8=%.9f',k(8))
fprintf('\n\tk9=%.9f',k(9))

fprintf('\n\t方程一的决定系数R1_Square=%.6f',R1_Square);
fprintf('\n\t方程二的决定系数R2_Square=%.6f',R2_Square);
fprintf('\n\t方程三的决定系数R3_Square=%.6f',R3_Square);




function f = ObjFunc(k,tspan,x0,yexp)           % 目标函数
[t Xsim] = ode45(@KineticsEqs,tspan,x0,[],k);
Xsim1=Xsim(:,1);
Xsim2=Xsim(:,2);
Xsim3=Xsim(:,2);

ysim(:,1) = Xsim1(2:end);
ysim(:,2) = Xsim2(2:end);
ysim(:,3) = Xsim3(2:end);


f = [(ysim(:,1)-yexp(:,1)) (ysim(:,2)-yexp(:,2)) (ysim(:,3)-yexp(:,3))];

function dCdt = KineticsEqs(t,u,k)  
x=u(1);
p=u(2);
s=u(3);

a=k(1);
b=k(2);
c=k(3);
d=k(4);
e=k(5);
f=k(6);
g=k(7);
h=k(8);
i=k(9);



dxdt = a*x*(1-x/b).*(1+s/c).^(-1);
dpdt=d*dxdt+e*(s./(s+f)).*x;
dsdt=g*dxdt+h*dpdt+i*x;
dCdt = [dxdt;dpdt;dsdt];

计算结果:
        k1=-24.867032689
        k2=5.968347685
        k3=0.525742903
        k4=11.267708389
        k5=6.039602224
        k6=-1.614606972
        k7=-15.309885669
        k8=6.596877645
        k9=0.664727164
        方程一的决定系数R1_Square=-0.002145
        方程二的决定系数R2_Square=0.359295
        方程三的决定系数R3_Square=-0.035619
matlab拟合微分方程组中的参数
附图1.png

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

zhl717

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-08-31 16:48:55
要拟合九个参数,这种问题还是推荐用1stOpt,参数个数太多,用MATLAB比较困难。
下面给出MATLAB参考代码,代码中初值k0可以试着调一下,我初步调了一下初值,拟合效果不好。

function k1k2k3
format long
cle ...

好的,非常感谢
加油!!!
3楼2015-08-31 17:03:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

皓小天

木虫之王 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
我记得已经回复了你这个问题,http://muchong.com/bbs/viewthread.php?tid=9255377&authorid=1864745
请不要站内找我要书,如果需要请到书籍板块求助
4楼2015-08-31 22:03:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

narian

木虫 (著名写手)

总司令

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-08-31 16:48:55
要拟合九个参数,这种问题还是推荐用1stOpt,参数个数太多,用MATLAB比较困难。
下面给出MATLAB参考代码,代码中初值k0可以试着调一下,我初步调了一下初值,拟合效果不好。

function k1k2k3
format long
cle ...

高手,有问题请教

[ 发自小木虫客户端 ]
回不去的青春,那是我一生一次的认真!
5楼2015-09-01 06:30:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

narian

木虫 (著名写手)

总司令

引用回帖:
4楼: Originally posted by 皓小天 at 2015-08-31 22:03:03
我记得已经回复了你这个问题,http://muchong.com/bbs/viewthread.php?tid=9255377&authorid=1864745

高手,私信请教你一些问题

[ 发自小木虫客户端 ]
回不去的青春,那是我一生一次的认真!
6楼2015-09-01 06:32:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhl717 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 【双一流院校新能源、环境材料,材料加工与模拟招收大量调剂】 +3 Higraduate 2026-03-22 6/300 2026-03-24 09:55 by AZMK
[考研] 资源与环境 调剂申请(333分) +6 holy J 2026-03-21 6/300 2026-03-24 09:51 by hengsmith
[考研] 327求调剂 +5 prayer13 2026-03-23 5/250 2026-03-23 22:11 by 星空星月
[考研] 考研化学308分求调剂 +7 你好明天你好 2026-03-23 8/400 2026-03-23 18:39 by macy2011
[考研] 招08考数学 +6 laoshidan 2026-03-20 14/700 2026-03-23 14:37 by 15614359529
[考研] 一志愿东华大学化学070300,求调剂 +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
[考研] 一志愿华中农业071010,总分320求调剂 +5 困困困困坤坤 2026-03-20 6/300 2026-03-22 17:41 by hxsm
[考研] 319求调剂 +4 小力气珂珂 2026-03-20 4/200 2026-03-22 15:53 by ColorlessPI
[考研] 275求调剂 +6 shansx 2026-03-22 8/400 2026-03-22 15:27 by barlinike
[考研] 0856材料专硕353求调剂 +4 NIFFFfff 2026-03-20 4/200 2026-03-22 09:49 by 2026paper
[基金申请] 山东省面上项目限额评审 +4 石瑞0426 2026-03-19 4/200 2026-03-22 08:50 by Wei_ren
[考研] 085601调剂 358分 +3 zzzzggh 2026-03-20 4/200 2026-03-21 10:21 by luoyongfeng
[考研] 求调剂 +6 Mqqqqqq 2026-03-19 6/300 2026-03-21 08:04 by JourneyLucky
[考研] 南昌大学材料专硕311分求调剂 +6 77chaselx 2026-03-20 6/300 2026-03-21 07:24 by JourneyLucky
[考研] 华东师范大学-071000生物学-293分-求调剂 +3 研究生何瑶明 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[考研] 考研调剂求学校推荐 +3 伯乐29 2026-03-18 5/250 2026-03-20 22:59 by JourneyLucky
[考研] 295复试调剂 +8 简木ChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[考研] 0703化学调剂 +5 pupcoco 2026-03-17 8/400 2026-03-19 13:58 by houyaoxu
信息提示
请填处理意见