与...相关问题来自数学堆栈交换,有没有办法使用 Excel 以数值方式求解方程式?
我知道 Excel 中有一个求解器,但每当有变化时它都需要用户交互。我希望能够更改一些参数并让整个工作表自行更新,就像使用普通公式一样。
需要求解的方程如下,除以下所有参数外A已知:
a*cosh(x/a) - a - s = 0
答案1
这是不是一个通用的解决方案,只是一个技术的演示。
在A1输入一些小的正值,比如说0.001。 在B1输入一个非常大的正值,比如1.E+15。 在S1输入s价值,说7。 在X1输入X价值,说10。
在C1进入=(A1+B1)/2
D1输入您的公式:
=C1*COSH(X$1/C1)-C1-S$1
清楚地C1是下限和上限的平均值。由于它也非常大,因此公式得出的值约为-s
在A2进入=IF(D1>0,C1,A1)
B2输入=IF(D1<0,C1,B1)
并复制C1和D1向下。
在第 2 行中,我们将间隔减半。然后复制A2通过D2向下:
每行的间隔都是前一行间隔的一半。靠近底部:
因此数值解约为 8.097966368
笔记:
- 使用牛顿-拉夫森法,这将收敛得更快。
- VBA 用户定义函数将允许收敛自动终止。
- 对于某些值s和X,初始值A1可能需要修改。