通过excel求解复杂公式
2018-12-27 · 知道合伙人软件行家
Excel解这类超越方程不是它的强项,经常要解这类方程的话,还是建议用专门的数学软件,如MatchCAD。当然Excel也可完成的,只是求解比较麻烦,且如果收敛速度慢的话,会耗费很多时间,且精度有时也难以满足要求,甚至得不解的情况会造成Excel死循环(得预先设置防止)。
以本问题为例,可用Excel的单变量求解或规划求解来解决问题。实测单变量求解大约2分钟还没得到解,而用规划求解相对快一些。如图,在第1行A1:D1中输入符号,第2行A2:C2中输入已知的K、D、Re数值,D2中先随意输入一个假定值(假定值根据经验,输入的数值越接近正确的解,越容易使计算快速收敛,耗时越短),E2中输入公式的左边计算式:
E2=1/SQRT(D2)
F2中输入公式右边对应的计算公式:
F2=-2*LOG10(A2/(3.71*B2+2.51/(C2*SQRT(D2))))
G2中输入公式计算E2与F2的误差绝对值:
G2=ABS(E2-F2)
要得到方程的解,显示就是要G2的数值最小,最好为0。
现在就可以用单变量求解或规划求解了。下面以实测较快的规划求解(比单变量求解要稍复杂些)说明之:
鼠标定位到G2单元格,数据——规划求解(如果没有,就在选项中加载)
在弹出的求解对话框中,目标单元格已自动选择G2(因鼠标已定位到G2),目标值:0;可变单元格D2(λ为求解的变量)
求解方式可根据求解结果选择三个中不同的方式,一般总有一个会给出你结果(如果有解的话)。因为仅一个变量λ,也没有其他的约束条件,所以不用去管约束条件。点“求解”,Excel运行一段时间,即可能得到一个G2接近0的解,确定后,D2中得到求解结果。如图。