24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1750  |  回复: 8

winterhao

铁杆木虫 (正式写手)

[求助] matlab常微分方程多参数拟合的参数之间cross correlations 求助@月只蓝以及matlab高手已有1人参与

用lsqnonlin进行参数拟合后 怎样求参数 k1 k2 k3 之间的相关性 cross correlations
lsqnonlin有这个功能吗 还是需要我用别的函数去评价 我看了您以前列出的例子 如果能结合任何一个简单的例子的code给我讲讲 那真是太感谢了
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

你好,说来惭愧。我没计算过参数之间的cross correlations。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-03-10 08:40:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

winterhao

铁杆木虫 (正式写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-03-10 08:40:23
你好,说来惭愧。我没计算过参数之间的cross correlations。

还有一个问题 我现在拟合结晶动力学  
B = k1*(S^k2);  % 成核速率
G = k3*(S^k4);% 生长速率

k1 的数量级 1e16   k3的数量级 1e-3   k2与k4在 0-10 之间
如果我把这四个参数放在一起拟合 k1基本不动 您知道这种情况如何解决吗
3楼2015-03-10 18:33:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
3楼: Originally posted by winterhao at 2015-03-10 18:33:20
还有一个问题 我现在拟合结晶动力学  
B = k1*(S^k2);  % 成核速率
G = k3*(S^k4);% 生长速率

k1 的数量级 1e16   k3的数量级 1e-3   k2与k4在 0-10 之间
如果我把这四个参数放在一起拟合 k1基本不动 您知 ...

能给出数据吗?以及问题的具体描述。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-03-10 19:01:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

winterhao

铁杆木虫 (正式写手)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-03-10 19:01:13
能给出数据吗?以及问题的具体描述。...

我自己建了一个三相化学反应的模型 同时解 吸收溶解结晶三个过程的方程组 但是都是ode  但是模型比较长 我是把原始模型和实验数据给您?还是单独把结晶模型拿出来自己单独遍一组数据做个例子?
5楼2015-03-10 19:27:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

winterhao

铁杆木虫 (正式写手)

引用回帖:
4楼: Originally posted by 月只蓝 at 2015-03-10 19:01:13
能给出数据吗?以及问题的具体描述。...

这是一个关于Mg(OH)2颗粒与水和CO2反应生成 MgCO3晶体的 多相流反应 包含了Mg(OH)2颗粒溶解模型  CO2吸收模型 以及MgCO3结晶模型 前两个模型参数已经确定 现在只需要用实验数据 拟合 MgCO3结晶模型的参数 我已经写好了 lsqnonlin的code 请见matlab文件 可以直接运行  运行发现:
B = k1*(S^k3);  % 成核速率
G = k2*(S^k4);% 生长速率
第一个参数 k1 由于数量级很大(物理模型原因) 在拟合时变化很小 单独拟合这个参数变动也不大 拟合结果R2=0.90

我现在不确定是模型本身原因   还是我的初值选的不好的原因 我正在看您写的遗传算法 请您运行一下我的文件 帮我找找原因 非常感谢

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : fitting_lsqnonlin_Crystallization_kinetics.m
  • 2015-03-10 20:11:18, 13.29 K
6楼2015-03-10 20:12:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
winterhao: 金币+50, ★★★很有帮助, 遗传算法我也试过了 R2能到0.93 我再试试1stopt 非常感谢 2015-03-10 22:30:32
引用回帖:
6楼: Originally posted by winterhao at 2015-03-10 20:12:09
这是一个关于Mg(OH)2颗粒与水和CO2反应生成 MgCO3晶体的 多相流反应 包含了Mg(OH)2颗粒溶解模型  CO2吸收模型 以及MgCO3结晶模型 前两个模型参数已经确定 现在只需要用实验数据 拟合 MgCO3结晶模型的参数 我已经写 ...

您好,m文件我看了,程序是可以运行的,计算结果不太好。
我觉得还是初值的问题,4个k初值之间的数量级相差太大,MATLAB在比较复杂的常微分方程拟合方面,初值的选取一直是一个问题。
如果遗传算法效果还是不理想,试试用1stopt软件,由于只有4个参数,你试试高版本的1stopt软件吧:http://muchong.com/bbs/viewthread.php?tid=8050245
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2015-03-10 22:01:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

winterhao

铁杆木虫 (正式写手)

引用回帖:
7楼: Originally posted by 月只蓝 at 2015-03-10 22:01:33
您好,m文件我看了,程序是可以运行的,计算结果不太好。
我觉得还是初值的问题,4个k初值之间的数量级相差太大,MATLAB在比较复杂的常微分方程拟合方面,初值的选取一直是一个问题。
如果遗传算法效果还是不理想 ...

我有一个想法不知道可不可行 因为工作量比较大 所以先和您讨论一下 如果对参数和数据进行标准化或者归一化 使他们都限制在{0,1} 或者{-1,1}会不会对参数的拟合有帮助?  因为看到一个帖子说 如果两个参数差三个数量级以上 不是大的不动 就是小的不动 不可能找到最优 这种级数的差距即使1stopt可能也解决不了 我现在也不太明白 所以问问您
8楼2015-03-11 04:15:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
8楼: Originally posted by winterhao at 2015-03-11 04:15:46
我有一个想法不知道可不可行 因为工作量比较大 所以先和您讨论一下 如果对参数和数据进行标准化或者归一化 使他们都限制在{0,1} 或者{-1,1}会不会对参数的拟合有帮助?  因为看到一个帖子说 如果两个参数差三个数量 ...

缩小参数可取值区间,对拟合会有很大帮助。
我也想过对参数标准化的问题,只是没想通标准化具体如何实现,如何保证这样的处理方式是合理的;此外,我还考虑过对参数取对数,降低数量级的阶的办法,不过并没有找到合理可行的做法。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
9楼2015-03-11 08:32:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ICPP2025 的主题更新
信息提示
请填处理意见