
简单的matlab求方程组问题
先写一个myfun的m函数
function F = myfun(x)
Vt = sqrt((x(1) - 4.165)^2 + (x(2) - 2.786)^2);
beta1 = atan(x(2)/(x(1) - 0.6));
beta2 = atan(x(2)/(x(1) - 0.45));
alfa = pi - atan((x(2) - 2.786*pi/180)/(x(1) - 4.165*pi/180));
F(1) = Vt*cos(beta1 - alfa) - 6.9515899*pi/180;
F(2) = Vt*cos(beta2 - alfa) - 7.019463002*pi/180;
在主函数下运行:
opts = optimset('TolFun',1e-6,'TolX',1e-6,'MaxFunEvals',1e6,'Maxiter',1e6,'Display','iter');
x = fsolve(@myfun,[3,3]',opts);
注意你的计算公式中的值都应保持是弧度,角度值应*pi/180作换算,因为matlab里面三角函数的计算都是默认弧度值的。我对你函数中的值是什么含义不太确认,你再自己做下检查。
运行结果:x_t = 3.6070; y_t = 3.7182;