syms x p
eq1='p*(sin(x)^2)+(cos(x)^2)*sin(x)-0.5';
eq2='p*cos(x)*cos(2*x)-sin(x)*cos(2*x)-(sqrt(3)-2)/8';
[x,p]=solve(eq1, eq2, x , p)
syms x p
eq1='p*(sin(x)^2)+(cos(x)^2)*sin(x)-0.5';
eq2='p*cos(x)*cos(2*x)-sin(x)*cos(2*x)-(sqrt(3)-2)/8';
[x,p]=solve(eq1, eq2, x , p)
x=double(x)
x=(y*180/pi)
p=double(p)
输出的结果是
x = 1.5487e+02 - 1.7583e+01i
p =2.7030 - 0.3069i
答案应该是 x=30 p=0.5 或者接近 还有我想得到实数解 但是结果总是含有虚数怎么办呢
大神们 求回答
我运行了一下 结果咋没出来呢 你求出来了吗 x=30 p=0.5 我放到matlab里面 运行出来的结果是下面图片,结果也没对。我上面发的程序,那个y 之前我改了x 还是没计算出来,还有你说x p 顺序,我也改了,也没计算出来···不知道为什么呢,跪求大神指点= =
知道了,我用的是07版,你用的是更高级的版本,两个版本的求解器不一样,你那个版本最好用fsolve(用来求解非线性方程组)进行求解,不过需要指定初值
clear;clc;
f=@(x)([x(1)*(sin(x(2))^2)+(cos(x(2))^2)*sin(x(2))-0.5;...
x(1)*cos(x(2))*cos(2*x(2))-sin(x(2))*cos(2*x(2))-(sqrt(3)-2)/8]);
fsolve(f,[0.5,0.5]);
f=@(x)([x(1)*(sin(x(2))^2)+(cos(x(2))^2)*sin(x(2))-0.5; x(1)*cos(x(2))*cos(2*x(2))-sin(x(2))*cos(2*x(2))-(sqrt(3)-2)/8])
x=fsolve(f,[0.5,0.5])
我运行 没反应····
是版本问题吗 我是2012a版
没反应是什么意思,要么是有错误或警告提示,要么就是busy,不可能什么都没有。
在2012a上运行过,没有问题