版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3075)
>
虫友互识
(329)
>
导师招生
(221)
>
文献求助
(213)
>
休闲灌水
(67)
>
论文投稿
(60)
>
博后之家
(58)
>
招聘信息布告栏
(48)
>
硕博家园
(43)
>
考研
(41)
>
考博
(36)
>
绿色求助(高悬赏)
(26)
>
基金申请
(26)
>
教师之家
(23)
>
SciFinder/Reaxys
(22)
>
公派出国
(18)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
计算模拟
»
matlab求模型参数有错误,求指导
3
1/1
返回列表
查看: 315 | 回复: 2
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
咔咔小男人
金虫
(小有名气)
应助: 0
(幼儿园)
金币: 650
散金: 3
红花: 2
帖子: 88
在线: 53.6小时
虫号: 2725088
注册: 2013-10-15
性别: GG
专业: 环境化工
[
求助
]
matlab求模型参数有错误,求指导
已有1人参与
以下的程序是我照葫芦画瓢改的,不知道哪里错了。。。。。。本人刚开始接触matlab,求大神指导啊!
想用方程dy/dx=c*(A-y)^a*(B-y)进行拟合,求出c和a,其中A=0.9,B=8.5。
CODE:
function KineticsEst1_Int_modified_by_Yuezhilan
clear all;clc
format long
tspan=[0,1,2,3,4,5,7,10,15,20,30,45,90,120];
yexp=[0,0.3425,0.61125,0.6125,0.67,0.8025,0.85,0.8375,0.93,0.955,0.95125,0.95375,0.95625,0.96125]';
k0=[1 1]; %%%请注意这里,初值的选取
y0=0.2;
lb=[0 0];
ub=[1000 10];
yy=[y0 yexp'];
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\t待拟合参数 k1 = %.6f\n',k(1))
fprintf('\t待拟合参数 k2 = %.6f\n',k(2))
fprintf(' \t残差平方和= %.6f\n\n',resnorm)
ts=0:1:max(tspan);
[ts ys]=ode45(@KineticsEqs,ts,y0,[],k);
[ttt XXsim] = ode45(@KineticsEqs,tspan,y0,[],k);
y=XXsim(2:end);
xexp=yexp;
R2=1-sum((xexp-y).^2)./sum((xexp-mean(y)).^2);
fprintf('\n\t决定系数R-Square = %.6f',R2);
figure(1)
plot(ts,ys,'b',tspan,yy,'or'),legend('计算值','实验值','Location','best');
yr=y-yexp;
figure(2)
plot(tspan(2:end),yr,'r*',[-1 15],[0 0]),axis([-1 15 -0.5 0.5]);
figure(3)
plot(yexp,y,'ro',[21 29],[21 29],'b-');
%---------------------------------------------------------
function f = ObjFunc(k,tspan,y0,yexp)
[t Xsim] = ode45(@KineticsEqs,tspan,y0,[],k)
ysim = Xsim(2:end);
size(ysim);
size(yexp);
f=ysim-yexp;
%----------------------------------------------------------
function dydt = KineticsEqs(t,y,k)
beta(1)=k(1);
beta(2)=k(2);
dydt =beta(1)*(0.9-y)^beta(2)*(7.5-y);
回复此楼
» 猜你喜欢
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有185人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
德国亥姆霍兹Hereon中心汉堡分部招镁合金腐蚀裂变SCC课题方向2026公派博士生
已经有4人回复
澳门大学 应用物理及材料工程研究院 潘晖教授课题组诚招博士后
已经有11人回复
求助NH4V4O10晶体的CIF文件
已经有0人回复
英国全奖博士招聘-深度学习与量子物理
已经有0人回复
间接带隙半导体有效质量求助
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Matlab程序一直有错误,崩溃了
已经有9人回复
求matlab大神帮忙看下一个计算公式,怎么一直运行错误啊
已经有12人回复
comsol导出模型到matlab
已经有4人回复
求高手相助!matlab求反应动力学模型参数
已经有6人回复
使用MATLAB拟合动力学参数问题
已经有18人回复
matlab求取循环中最大值对应的参数值
已经有12人回复
动力学方程组参数求解问题
已经有9人回复
logit模型求解求助
已经有4人回复
matlab求模型参数有错误,求指导
已经有5人回复
想用遗传算法求解动力学参数
已经有13人回复
matlab 运行ode45出错,不知道什么原因
已经有4人回复
使用matlab最优化方法拟合获得多个动力学参数中的问题
已经有4人回复
求助利用补偿最小二乘法辨识半参数模型的matlab程序
已经有3人回复
matlab动力学模型编程求助
已经有6人回复
偏微分方程Matlab求解
已经有7人回复
实在是看不出这段matlab程序里哪里出错了,请大家帮忙看看!
已经有10人回复
MATLAB关于lsqcurvefit程序几个错误,求大神指导一下
已经有6人回复
matlab求解非线性方程组,错误提示怎么解决
已经有5人回复
锂离子电池matlab仿真的问题
已经有6人回复
matlab 拟合反应动力学参数结果很差。大家帮忙看一下
已经有14人回复
请教matlab反应动力学参数估计遇到的问题,谢谢
已经有15人回复
求助matlab-simulink运行时报错问题
已经有3人回复
一个人知识的界限就是一个人所能达到的最大范围的界限。对一种事物的理解、认识深度决定了其利用这种事物上所能实现的价值的有限性。
1楼
2015-06-01 14:44:43
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
月只蓝
主管区长
(职业作家)
专家经验: +1059
计算强帖: 8
应助: 1712
(讲师)
贵宾: 8.888
金币: 68123.7
散金: 1938
红花: 443
沙发: 4
帖子: 4373
在线: 3291.4小时
虫号: 1122189
注册: 2010-10-14
专业: 宇宙学
管辖:
计算模拟区
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
咔咔小男人: 金币+20,
★★★★★
最佳答案
2015-06-02 18:30:50
CODE:
function KineticsEst1_Int_modified_by_Yuezhilan
clear all;clc
format long
tspan=[0,1,2,3,4,5,7,10,15,20,30,45,90,120];
yexp=[0.3425,0.61125,0.6125,0.67,0.8025,0.85,0.8375,0.93,0.955,0.95125,0.95375,0.95625,0.96125]';
k0=[1 1]; %%%请注意这里,初值的选取
y0=0.2;
lb=[-inf -inf];
ub=[+inf +inf];
yy=[y0 yexp'];
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\t待拟合参数 k1 = %.6f\n',k(1))
fprintf('\t待拟合参数 k2 = %.6f\n',k(2))
fprintf(' \t残差平方和= %.6f\n\n',resnorm)
ts=0:1:max(tspan);
[ts ys]=ode45(@KineticsEqs,ts,y0,[],k);
[ttt XXsim] = ode45(@KineticsEqs,tspan,y0,[],k);
y=XXsim(2:end);
xexp=yexp;
[ttt(2:end) y xexp]
R2=1-sum((xexp-y).^2)./sum((xexp-mean(y)).^2);
fprintf('\n\t决定系数R-Square = %.6f',R2);
figure(1)
plot(ts,ys,'b',tspan,yy,'or'),legend('计算值','实验值','Location','best');
%---------------------------------------------------------
function f = ObjFunc(k,tspan,y0,yexp)
[t Xsim] = ode45(@KineticsEqs,tspan,y0,[],k);
ysim = Xsim(2:end);
size(ysim);
size(yexp);
f=ysim-yexp;
%----------------------------------------------------------
function dydt = KineticsEqs(t,y,k)
beta(1)=k(1);
beta(2)=k(2);
dydt =beta(1)*(0.9-y).^beta(2)*(7.5-y);
初值k0的取值很重要,自己再改改吧。
附图1.png
赞
一下
回复此楼
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼
2015-06-01 18:52:09
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
咔咔小男人
金虫
(小有名气)
应助: 0
(幼儿园)
金币: 650
散金: 3
红花: 2
帖子: 88
在线: 53.6小时
虫号: 2725088
注册: 2013-10-15
性别: GG
专业: 环境化工
引用回帖:
2楼
:
Originally posted by
月只蓝
at 2015-06-01 18:52:09
function KineticsEst1_Int_modified_by_Yuezhilan
clear all;clc
format long
tspan=;
yexp=';
k0=; %%%请注意这里,初值的选取
y0=0.2;
lb=;
ub=;
yy=;
= ...
lsqnonlin(@ObjFunc,k0,l ...
没想到作者来了
,感谢您
赞
一下
回复此楼
一个人知识的界限就是一个人所能达到的最大范围的界限。对一种事物的理解、认识深度决定了其利用这种事物上所能实现的价值的有限性。
3楼
2015-06-02 18:31:17
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
咔咔小男人
的主题更新
3
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定