Matlab求解超定方程组实例
对于超定方程组,特别是非线性方程组,可以用Matlab基于最小二乘算法来进行求解,例如,求解下列方程组:
一个三个未知数,九个方程的非线性方程组:
cos(x3)*sin(x2)*sin(x1)-sin(x3)*cos(x1)=-0.9944 ;
sin(x3)*sin(x2)*sin(x1)+cos(x3)*cos(x1)=-0.0870;
cos(x2)*sin(x1)=-0.0606;
cos(x3)*sin(x2)*cos(x1)+sin(x3)*sin(x1)=0.0349;
sin(x3)*sin(x2)*cos(x1)-cos(x3)*sin(x1)=-0.8085;
cos(x2)*cos(x1)=0.5875;
os(x3)*cos(x2)=-0.1001;
sin(x3)*cos(x2)=0.5821;
-sin(x2)=0.8070;
代码
% By lyqmath
function main()
clc; clear all; close all;
% cos(x3)*sin(x2)*sin(x1)-sin(x3)*cos(x1)=-0.9944 ;
% sin(x3)*sin(x2)*sin(x1)+cos(x3)*cos(x1)=-0.0870;
% cos(x2)*sin(x1)=-0.0606;
% cos(x3)*sin(x2)*cos(x1)+sin(x3)*sin(x1)=0.0349;
% sin(x3)*sin(x2)*cos(x1)-cos(x3)*sin(x1)=-0.8085;
% cos(x2)*cos(x1)=0.5875;
% os(x3)*cos(x2)=-0.1001;
% sin(x3)*cos(x2)=0.5821;
% -sin(x2)=0.8070;
x0 = [0.3 0.4 0.5]