【发布时间】:2014-11-28 01:40:42
【问题描述】:
我很难找到非线性方程的根。我已经尝试过 Matlab 和 Maple,两者都给了我同样的错误
Error, (in RootFinding:-NextZero) can only handle isolated zeros
等式是这样的
-100 + 0.1335600000e-5*H + (1/20)*H*arcsinh(2003.40/H)
等式中的变量是H。
如何找到这个方程的根(或近似根)?
Matlab 代码: 函数文件:
function hor_force = horizontal(XY, XZ, Lo, EAo, qc, VA)
syms H
equation = (-1*ZZ) + (H/qc)*(cosh((qc/H)*(XZ- XB))) - H/qc + ZB;
hor_force = `solve(equation);`
主文件:
EAo = 7.5*10^7;
Lo = 100.17;
VA = 2002;
XY = 0;
ZY = 0;
XB = 50;
ZB = -2;
XZ = 100;
ZZ = 0;
ql = 40;
Matlab 显示的错误:
Error using sym/solve (line 22)
Error using maplemex
Error, (in RootFinding:-NextZero) can only handle isolated zeros
Error in horizontal (line 8)
hor_force = solve(equation);
Error in main (line 34)
h = horizontal(XY, XZ, Lo, EAo, ql, VA)
【问题讨论】:
-
在 Matlab R2014b 中对我来说很好。你在用什么
version?那是产生错误的实际代码吗?请编辑以在 Matlab 中显示完整的错误消息。 -
所提供的参数肯定与等式中的参数不对应。
-
@horchler 是的,这与我使用的代码相同。我正在使用 Matlab 2013b。我已经发布了 Matlab 显示的错误消息。请帮忙。
-
@horchler 不好意思,我贴了一些其他同类型问题的参数。我已经编辑了它。你能重新检查一下吗?
-
错误中的
maplemex很有趣。我很惊讶在 Matlab 的符号数学工具箱中还剩下 Maple 的任何东西。在命令窗口中输入symengine会得到什么?您是否可能在 R2013b 中使用旧版本的工具箱?
标签: matlab symbolic-math maple equation-solving nonlinear-functions