用Mathematica计算一元高次方程

今天碰到一个问题,问题如下:

假设在2020年,销售额是15000元,预期到2030年销售额是20000元,如果每年以相同的增长率增长,请问该增长率是多少?

这是求增长率的问题。方程很好列,2020年到2030年,刚好10年,每年增长率相等,则方程可以列为:

    \[ 15000 (1+x)^{10}=20000 \]

输入格式:

15000*(1+x)^10=20000

这是个一元十次方程。接下来就是求解方程了。

问题是,10次方程似乎并不好解,借用Mathematica的Solve函数也不能直接求解,直接用Solve函数求解会得到如下结果:

可以看到用Solve函数得不到我们要的数值解,所以Solve并不能解高次方程。

我尝试过,用Solve求解4次和4次以下方程才可以直接得到结果,幂次再高的话就不能得到简单的数值解。因此得换个思路:

利用 FindRoot 而不是 Solve 来求解。

借用Mathematica可以按照如下方式求解(我已经做了注释):

可以得到增长率约为 2.92%

由此可以看到,借用函数图像的交叉点判断数值解的范围,再利用FindRoot来求得近似解,这种方法很快,也很高效。

类似的,可以换数值来求解负的增长率,比如下题:

假设在2020年,超污染排放厂是35个,预期到2030年降低到22个,如果每年以相同的递减率递减,请问该递减率是多少?

用类似的方法计算如下(这里没加注释,仿照上例来看,方法一模一样):

可以求得递减率约是 4.54%

对于其他次幂,该方法也是可用的。


原创文章,转载请注明: 转载自TAHO

本文链接地址: 《用Mathematica计算一元高次方程》:http://taho.cc/16512

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

record your voice
Time: 00:00
Level:
Status: