数学
VC解方程:二元四次的方程组-0.46-x*(1-(x^2+y^2)+2*(x^2+y^2)^2)+2*0.1*x*y+0.7*(y^2+3*x^2)=0-0.63-y*(1-(x^2+y^2)+2*(x^2+y^2)^2)+0.1*(x^2+3*y^2)+2*0.7*x*y=0VC解方程:我想要用VC实现的,

2019-05-28

VC解方程:二元四次的方程组
-0.46-x*(1-(x^2+y^2)+2*(x^2+y^2)^2)+2*0.1*x*y+0.7*(y^2+3*x^2)=0
-0.63-y*(1-(x^2+y^2)+2*(x^2+y^2)^2)+0.1*(x^2+3*y^2)+2*0.7*x*y=0
VC解方程:
我想要用VC实现的,
优质解答
楼主你好!

不知您到底是要过程还是只要结果,我用matlab写了几条语句解了一下.的确有一组实数根
x =

0.5447685-0.1937201*i
-0.7746809+0.6140353*i
0.6180352+1.2150871*i
-0.21296569
0.6180352-1.2150871*i
-0.7746809-0.6140353*i
0.5447685+0.1937201*i

y =

0.66449024+0.54321512000*i
-0.10798051+0.66064071293*i
-1.45245241+0.29101273688*i
-0.47507464
-1.45245241-0.29101273688*i
-0.10798051-0.66064071293*i
0.66449024-0.54321512000*i
每一行的x对应y
附上程序:
syms x y;
eq1=-0.46-x*(1-(x^2+y^2)+2*(x^2+y^2)^2)+2*0.1*x*y+0.7*(y^2+3*x^2);
eq2=-0.63-y*(1-(x^2+y^2)+2*(x^2+y^2)^2)+0.1*(x^2+3*y^2)+2*0.7*x*y;
[x y]=solve(eq1,eq2,x,y)
补充:
我用VC写了一段从0向下穷举到-1的程序.
顺序穷举就是算的时间长,肯定能搞出来,其他的算法写起来就比较麻烦了,呵呵.
算出来的结果是
x=-0.212960 y=-0.475080
x=-0.212970 y=-0.475070
跟上面的答案是一致的.
程序:
#include
void main()
{
double x=0;
double y=0;
while(x>=-0.5)
{
while(y>=-0.5)
{
if((-0.46-x*(1-(x*x+y*y)+2*(x*x+y*y)*(x*x+y*y))+2*0.1*x*y+0.7*(y*y+3*x*x)-0.00001)&&(-0.63-y*(1-(x*x+y*y)+2*(x*x+y*y)*(x*x+y*y))+0.1*(x*x+3*y*y)+2*0.7*x*y-0.00001))
printf("x=%f y=%f",x,y );
y=y-0.00001;
}
y=0;
x=x-0.00001;
}
}
楼主你好!

不知您到底是要过程还是只要结果,我用matlab写了几条语句解了一下.的确有一组实数根
x =

0.5447685-0.1937201*i
-0.7746809+0.6140353*i
0.6180352+1.2150871*i
-0.21296569
0.6180352-1.2150871*i
-0.7746809-0.6140353*i
0.5447685+0.1937201*i

y =

0.66449024+0.54321512000*i
-0.10798051+0.66064071293*i
-1.45245241+0.29101273688*i
-0.47507464
-1.45245241-0.29101273688*i
-0.10798051-0.66064071293*i
0.66449024-0.54321512000*i
每一行的x对应y
附上程序:
syms x y;
eq1=-0.46-x*(1-(x^2+y^2)+2*(x^2+y^2)^2)+2*0.1*x*y+0.7*(y^2+3*x^2);
eq2=-0.63-y*(1-(x^2+y^2)+2*(x^2+y^2)^2)+0.1*(x^2+3*y^2)+2*0.7*x*y;
[x y]=solve(eq1,eq2,x,y)
补充:
我用VC写了一段从0向下穷举到-1的程序.
顺序穷举就是算的时间长,肯定能搞出来,其他的算法写起来就比较麻烦了,呵呵.
算出来的结果是
x=-0.212960 y=-0.475080
x=-0.212970 y=-0.475070
跟上面的答案是一致的.
程序:
#include
void main()
{
double x=0;
double y=0;
while(x>=-0.5)
{
while(y>=-0.5)
{
if((-0.46-x*(1-(x*x+y*y)+2*(x*x+y*y)*(x*x+y*y))+2*0.1*x*y+0.7*(y*y+3*x*x)-0.00001)&&(-0.63-y*(1-(x*x+y*y)+2*(x*x+y*y)*(x*x+y*y))+0.1*(x*x+3*y*y)+2*0.7*x*y-0.00001))
printf("x=%f y=%f",x,y );
y=y-0.00001;
}
y=0;
x=x-0.00001;
}
}
相关问答