【发布时间】:2016-12-12 04:42:21
【问题描述】:
我在使用fsolve 时遇到问题,程序向我发送错误消息,但我不知道为什么。我应该找到x(2) = 2.96e+13 和x(1)= 2.72e+22。
我试过这个来解决我的非线性方程:我有 2 个方程和 2 个未知数:
function y = f(x)
global x_rayon_droite
global z1
global r_droite
global x_rayon_gauche
global r_gauche
global y_rayon_droite
global y_rayon_gauche
x_rayon_droite=406
z1=2.72e+22
r_droite = 556.77
x_rayon_gauche=179
r_gauche = 241.42
y_rayon_droite=381
y_rayon_gauche=162
y(1)= x(1).*(x_rayon_droite./z1-x(2)./r_droite.*x_rayon_droite./r_droite)-x(1).*(x_rayon_gauche./z1-x(2)./r_gauche.*x_rayon_gauche./r_gauche)+x_rayon_droite-x_rayon_gauche;
y(2)= x(1).*(y_rayon_droite./z1-x(2)./r_droite.*y_rayon_droite./r_droite)-x(1).*(y_rayon_gauche./z1-x(2)./r_gauche.*y_rayon_gauche./r_gauche)+y_rayon_droite-y_rayon_gauche;
endfunction
[x,info]=fsolve("f",[1e+22;1e13])
使用 fsolve 后出错:
提前谢谢
【问题讨论】:
-
错误在哪里?我只能在图像中看到警告(这是个坏主意,你为什么不将输出添加为文本?)
-
程序没有向我显示值为 x1 和 x2 的结果。我不知道如何将错误输出为文本。
-
首先要做的是查看函数失败的值。使用
OutputFcn来实现这一点。
标签: octave