[已解决] 请问MATLAB如何求解多指数(f(t)=N1*exp(-λ1t)+N2*exp(-λ2t)+...+Nn*exp(-λnt))反演问题?已知t和f(t),求解参数n,N,λ

[复制链接]
1900aaaa 发表于 2020-11-25 20:42:53
式中(f(t)=N1*exp(-λ1t)+N2*exp(-λ2t)+...+Nn*exp(-λnt))已知t和f(t),求解参数n,N,λ

已知t和f(t),求解参数n,N,λ

已知t和f(t),求解参数n,N,λ

最佳答案


shihe 发表于 2020-11-26 15:55:14
n也作为未知参数的话,那N和λ参数数也就是未定的了,同时模型结构也是不定的,这样的话很难求解计算了吧。理论上n越大拟合效果应该越好,实际没必要取很大吧,先去一个n1值计算,再取略大一点的n2再计算,两者相比结果提升小于某个阈值(比如1%)就可以认可。
猜初值的问题已有很多讨论了,用Matlab的话就是经验+运气,另外可使用采用全局优化算法的软件比如1stOpt,不需要用户提供初值。

3 条回复


shihe 发表于 2020-11-26 10:05:13
就是一般的非线性拟合问题吧,给定一个n值就有对应的n个N和n个λ参数,试试lsqcurvefit等命令。

1900aaaa 发表于 2020-11-26 12:06:02
shihe 发表于 2020-11-26 10:05
就是一般的非线性拟合问题吧,给定一个n值就有对应的n个N和n个λ参数,试试lsqcurvefit等命令。 ...

嗯,谢谢您!
还有两个小问题不太明白,就是这些非线性拟合方法的初值设置对结果影响较大,一般设置是?
另外,如果我们将 n 也作为待求参数,即有办法处理多指数问题吗,也就是指数个数也作为待求参数

shihe 发表于 2020-11-26 15:55:14
n也作为未知参数的话,那N和λ参数数也就是未定的了,同时模型结构也是不定的,这样的话很难求解计算了吧。理论上n越大拟合效果应该越好,实际没必要取很大吧,先去一个n1值计算,再取略大一点的n2再计算,两者相比结果提升小于某个阈值(比如1%)就可以认可。
猜初值的问题已有很多讨论了,用Matlab的话就是经验+运气,另外可使用采用全局优化算法的软件比如1stOpt,不需要用户提供初值。
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表