解非线性方程涉及金额
1视图(30天)
显示旧的评论
你好,
我试图解决一个非线性方程。
代码
信谊
g y z
n
x = 0.0585;
y = 0.01;
π=符号(π);
eqn = 1 / g-sqrt (1 + z。^ 2 / ((2 * n + 1) *π* y + 4.4 *π* x * g) ^ 2) = = 0;
索尔=解决(eqn g,
“returnconditions”
,真的,
“maxdegree”
4);
G =简化(sol.g)
上面给我四根的建议
//www.tatmou.com/matlabcentral/answers/829308-金宝搏官方网站solutions-are-only-valid-under-certain-conditions?s_tid=prof_contriblnk
沃尔特·罗伯逊。
我的代码来解决非线性方程
sumArg4 = @ (n z) 2 *ππ* (2 * n + 1) * * (G (4) 1) / ((2 * n + 1) * pi + 4.4 *π* x / y) / ((2 * n + 1) * pi + 4.4 *π* x * G (4) / y) + 0.6431;
这里只有一个以上的四根满足所以我把第四根(做那些计算
Mathematica)
mytrial4 = @ (z) symsum (sumArg4, n, 0, 10000)
解决非线性方程z %
zsol = fsolve (mytrial4, 2.28)
我读了一些文章,他们说fsolve不能用于符号表达式。
运行以上代码给了我一个错误
function_handle与价值:
@ (z) symsum (sumArg4, n, 0, 10000)
错误使用fsolve(第309行)
FSOLVE要求所有由函数返回值的数据类型的两倍。
错误solveg_new_gz(24)行
zsol = fsolve (mytrial4, 2.28)
所以你能建议我如何照顾这个错误吗?
我做了在Matlab数学但想尝试。
谢谢你!
0评论
答案(1)
ILDEBERTO DE LOS SANTOS鲁伊斯
2021年7月21日
这将花很长时间来评估从n = 0到n = 10000。
你可以在短时间内解决它只考虑从n = 0到n = 10,虽然也是必要的方程定义为一个数值函数处理。
%……
mytrial4 = @ (z)双(eval (symsum (sumArg4, n, 0, 10)))
zsol = fsolve (mytrial4, 2.28)