查看: 639  |  回复: 6
【悬赏金币】回答本帖问题,作者ckm0811将赠送您 10 个金币
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ckm0811

新虫 (初入文坛)

[求助] 微分方程与代数方程联立,参数拟合问题求助已有1人参与

根据以下二式,利用最小二乘法拟合参数a,b,c,从而得到关于P的模型。
① P=a*[(lamb/x)^b/lamb-1/lamb*(x/lamb)^(0.5b)]
② dx/dt=(1/3/c)*a*[(lamb/x)^b-(x/lamb)^(0.5b)]
其中a,b,c为待求参数。试验数据lamb和P已知,其中lamb范围为[0.91,1]。x为中间变量。
目前不知该用什么函数实现上述目的,想请大家提供一些思路。

已写程序如下,中间一段代码思路应该有问题,但不知如何改正
clear,clc
close all
format long;
lamb=[1;0.995;0.99;0.985;0.98;0.975;0.97;0.965;0.96;0.955;0.95;0.945;0.94;0.935;0.93;0.925;0.92;0.915;0.91] %试验值lamb
p=[0;-0.0166845;-0.0293383;-0.0433058;-0.0591614;-0.0761656;-0.0933141;-0.1099259;-0.1258601;-0.1414556;-0.1572909;-0.1738675;-0.1913200;-0.2092681;-0.2269212;-0.243560;-0.2595227;-0.2778129;-0.3064931];   %试验数据P

%fac为未知数向量,其中元素fac(1)=a,fac(2)=b,fac(3)=c
%lambv即中间变量x
fun=@(fac,lamb,lambv)(fac(1)*((lamb./lambv)^fac(2)./lamb-(lambv./lamb).^(fac(2)*0.5)./lamb));
odefun=@(fac,lamb,lambv)(1/3/fac(3)*(fac(1)*((lamb./lambv)^fac(2)-(lambv./lamb)^(0.5*fac(2)))));
tspan=[0.9,1];
lambv0=1;
[fac,lambv]=ode45(odefun,tspan,lambv0,[]);
fac0=[0.5 0.15 1]; %a,b,c初值
%最小二乘法拟合abc
coefind=fminsearch(@(fac)((sum(p(:,1)-fun(fac,lamb,lambv)))^2),coeffia0,optimset('MaxFunEvals',1e10,'MaxIter',1e6));


%拟合后的理论模型
p_model=coefind(1)*((lamb./lambv)^b./lamb-1/lamb*(lambv./lamb)^(0.5b))
err1=100*(p-p_model)/p
figure('color',[1 1 1])
plot(lamb,p,'-o');  
hold on
plot(lamb,p_model,'--');
xlabel('主伸长率λ','fontsize',10);
ylabel('名义应力P1(Mpa)','fontsize',10);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ckm0811

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 独孤神宇 at 2021-07-12 21:35:54
一种方法是直接用哦的 ode15i 函数求解微分代数方程,然后用 非线性拟合函数 如lsqnonlin求解参数
第二种方法,将代数方程求导转化为 微分方程,然后拟合微分方程组参数
...

您好,我尝试了用ode15i求解,将中间部分的程序改成为下面所示,出现了报错。用ode15i求解式2时,里面的系数abc是未知的,这样可以求解出来吗,感觉自己还是不太明白该怎么做。您空闲时可以帮忙看一下程序指点一下吗
fun=@(fac,lamb,lambv)(fac(1)*((lamb./lambv)^fac(2)./lamb-(lambv./lamb).^(fac(2)*0.5)./lamb));
odefun=@(lambv,xp,fac,lamb)(xp-(1/3/fac(3))*(fac(1)*((lamb./lambv)^fac(2)-(lambv./lamb)^(0.5*fac(2)))));
tspan=lamb';
lambv0=1;
xp0=0;
[t,lambv]=ode15i(odefun,tspan,lambv0,xp0);


报错:
索引超出数组元素的数目(1)。

出错
netBmodel2>@(lambv,xp,fac,lamb)(xp-(1/3/fac(3))*(fac(1)*((lamb./lambv)^fac(2)-(lambv./lamb)^(0.5*fac(2)))))

出错 odearguments (line 90)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

出错 ode15i (line 118)
    odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0,  ...

出错 netBmodel2 (line 22)
[t,lambv]=ode15i(odefun,tspan,lambv0,xp0);
3楼2021-07-13 16:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

独孤神宇

版主 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
一种方法是直接用哦的 ode15i 函数求解微分代数方程,然后用 非线性拟合函数 如lsqnonlin求解参数

第二种方法,将代数方程求导转化为 微分方程,然后拟合微分方程组参数

发自小木虫Android客户端
数值计算
2楼2021-07-12 21:35:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by ckm0811 at 2021-07-13 16:31:45
您好,我尝试了用ode15i求解,将中间部分的程序改成为下面所示,出现了报错。用ode15i求解式2时,里面的系数abc是未知的,这样可以求解出来吗,感觉自己还是不太明白该怎么做。您空闲时可以帮忙看一下程序指点一下 ...

我看了一下,缺少 时间 t 对应的数据,这个没办法进行拟合的。
数值计算
4楼2021-07-13 21:50:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ckm0811

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 独孤神宇 at 2021-07-13 21:50:46
我看了一下,缺少 时间 t 对应的数据,这个没办法进行拟合的。...

刚看到您的回复,谢谢
5楼2021-07-19 09:06:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[文学芳草园] 很久 +4 myrtle 2022-06-26 4/200 2022-07-01 11:53 by angelyueyi
[论文投稿] 小修后还会送给新的审稿人吗? 25+4 hebtukj 2022-06-30 12/600 2022-07-01 10:43 by hebtukj
[基金申请] 基金后缀proposal%20是啥意思? +4 fighting out 2022-06-30 5/250 2022-07-01 10:36 by hhaaww
[基金申请] 科协青年人才托举 +18 030Selma 2022-06-29 20/1000 2022-07-01 09:07 by xianyunhanyu
[教师之家] 中国人已把影响因子玩坏 +23 babu2015 2022-06-29 23/1150 2022-07-01 06:35 by chemocoder
[论文投稿] 文章二审一个小修一个拒稿 (金币+5) +11 uclljn 2022-06-28 24/1200 2022-07-01 06:17 by feihua123
[教师之家] 材料纳米论文漫天飞,不是为了材料研究和应用,只是为了影响因子和帽子。 +4 有余12 2022-06-30 4/200 2022-07-01 03:41 by 小木脑虫
[论文投稿] 今年第4篇sci录用,开心就好 +27 tanzhiheng 2022-06-25 27/1350 2022-07-01 00:34 by 溪落3
[访问学者] 2022年国家公派公布时间 +3 平凡冰雪花 2022-06-29 8/400 2022-07-01 00:16 by 平凡冰雪花
[基金申请] 青基中了之后转到新单位,新单位一般认不认啊 +13 Sun_Yilee 2022-06-28 15/750 2022-06-30 18:41 by Sun_Yilee
[论文投稿] 求助,老师一直不满意我回复的审稿人意见!麻烦大家帮我看看到底怎么回复这个问题QAQ +14 江文载 2022-06-25 30/1500 2022-06-30 17:20 by finalmusic5
[论文投稿] 生化材料影响因子10以下的都不能看了吧 +13 babu2015 2022-06-28 14/700 2022-06-30 15:41 by 宗啊啊
[基金申请] 国自然会评时间为何还不发布? +8 xmccnmmmm 2022-06-28 8/400 2022-06-30 11:15 by ah25040403
[考博] 29岁大龄工作党到底要不要选择读博以及Offer选择? 10+6 Wxxiaoye 2022-06-26 23/1150 2022-06-30 11:10 by 白月盈
[有机交流] 求购甲基磺酰氯 +3 笑看人生1993 2022-06-29 5/250 2022-06-30 00:17 by 笑看人生1993
[公派出国] 达姆工大材料读博入学询问 +3 GraceLF 2022-06-27 3/150 2022-06-29 22:34 by 名字不要长哦
[基金申请] 基金申报,搞得各位人才精神紧张,压力大 +19 haoyang5201 2022-06-25 24/1200 2022-06-29 09:22 by 木木的坚持
[论文投稿] ssci2区投稿现收到大修, 即将回复,有关funding的相关可以请友友们帮忙吗? +5 下雨天?? 2022-06-27 10/500 2022-06-28 08:37 by 下雨天??
[论文投稿] RSI期刊,大修后审稿4个月 +4 tianlei216 2022-06-25 4/200 2022-06-26 20:07 by 蹉跎岁月
[基金申请] 站中资助下周会公示吗 +6 ninjala 2022-06-26 6/300 2022-06-26 16:29 by liuqingv
信息提示
请填处理意见