用LINGO解非线性方程组x^2+y^2=4;2*x^2+x+y^2+y=4.请写出过程,最好附带用MATLAB解一下。谢谢!

我用LINGO解时,总是提示有错。有哪位高手帮忙解一下,如果用MATLAB也可以。最好两种方法都帮忙解一下。谢谢了!

用lingo解过程(只得到一个解):
LINGO程序:

model:
x^2+y^2=4;
2*x^2+x+y^2+y=4;
@free(x);
@free(y);
end

得解:
X=0.9228086;
Y=-1.774381;
用MATLAB求解有四组解:
MATLAB程序:
[x,y]=solve('x^2+y^2=4','2*x^2+x+y^2+y=4','x,y');
double([x,y])

ans =

0.9228 -1.7744
-1.6652 -1.1077
-0.6288 + 1.4858i 2.4411 + 0.3827i
-0.6288 - 1.4858i 2.4411 - 0.3827i
x,y分别等于上述解的对应值,x=0.9228,y=-1.7744;x=-1.6652,y=-1.1077;x=-0.6288 + 1.4858i ,y=2.4411 + 0.3827i;x=-0.6288 - 1.4858i,y=2.4411 - 0.3827i
明白了吧。祝好。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-30
lingo不是用来解方程的 这个只能给出一个解 而且lingo默认变量都非负 需要用@free取消非负限制 你可以分段设置x y的范围来得到所有的解
x^2+y^2=4;2*x^2+x+y^2+y=4;
@free(x);@free(y);
第2个回答  2010-07-30
LINGO程序:

model:
x^2+y^2=4;
2*x^2+x+y^2+y=4;
!@free(x),@free(y)解除对
x,y的非负限制,也是LINGO内部默认的设置;
@free(x);
@free(y);
end

得解:
X=0.9228086;
Y=-1.774381;
相似回答