之前写的 用MATHEMATICA计算一元高次方程 内容较复杂,探讨了 Solve 的局限性和 FindRoot 的使用。
如果只要计算增长率,用以下代码即可:
1 2 3 4 5 6 |
StartYear=2017; EndYear=2030; Year = EndYear-StartYear; StartNumber = 1200; EndNumber = 2200; FindRoot[StartNumber (1 + x)^(Year) == EndNumber, {x, -1, 1}] |
解释:
StartYear是起始年份,EndYear是结束年份,Year是一共经历了多少年。
StartNumber 就是初始年份的值,EndNumber是结束年份的值。
最后一行是计算,因为增长率不可能超出[-1,1],所以直接寻找值。只要数据正确,就不会报错了。
上面的例子的运行结果: