Maxima简单方程求解求助:新手求正确命令指导
解决Maxima中非线性方程求解的问题
嗨,刚接触Maxima30分钟就能写出这样的方程,已经做得很好啦!针对你要解CET的需求,我给你推荐最实用的方法:
- 首先确认你的方程定义是正确的,先把代码规整下(方便后续运行):
ji:[31,59,91,120,151]; FCZ: 950.00; FC: 207.79; eqn: lsum(FC/((1+CET)^(j/365)), j, ji) - FCZ = 0;
- 因为这是非线性方程(CET在指数位置),Maxima里最适合的数值求解命令是
find_root()。这个命令需要你指定变量的大致范围(比如CET是利率,肯定是正数,我们可以先试0到1,也就是0%到100%的区间):
find_root(eqn, CET, 0, 1);
简单解释下:find_root(目标方程, 待求解变量, 搜索下限, 搜索上限),它会在你给定的区间内快速找到一个数值解,完全适配你的场景。
如果好奇符号解的话,也可以试试
solve(eqn, CET),但这类指数求和的方程几乎没有解析解,所以solve大概率只会返回原方程或者提示无法求解,优先用find_root就好。小技巧:如果运行时出现收敛问题,调整一下区间范围就行。比如你预期CET在5%左右,就把区间设成
0.01, 0.1,这样搜索更精准,速度也更快。
内容的提问来源于stack exchange,提问作者Murilo Schünke
相关产品推荐
相关产品推荐

