matlab 四个约束 三个未知数

2024-11-27 11:32:45
推荐回答(2个)
回答1:

一般来说,3个未知数就是3个方程,除非这4个方程是想关的,也就是第4个方程可以由前3个方程推导出来。你可以先只用前三个方程求解,然后把得到的解代到第4个方程里看看等式是否成立,如果成立,那就是解,否则就说明方程组无解。
刘阳升所说的最小二乘解其实不能说是方程组的解,因为你把它代到方程中可以发现没有一个方程的等式是成立的

回答2:

这是超定非线性方程组,可以用最小二乘法解,以下是参考:
主函数:

clc;clear;
x0=[3,2,1];
[x,resnorm,restdual,exitflag]=lsqnonlin(@fun,x0);
子函数:
function f=fun(x)
f(1)=-2.2*x(1)+0.25*x(2)-2*x(3);
f(2)=4*x(1)-7.2*x(2)+3*x(3);
f(3)=-2*x(1)+3*x(2)-11.3*x(3);
f(4)=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-1;
解为:

0.00109 0.000605 -6.296e-05