直接解法
Ax=l,求x。利用逆矩阵、矩阵除法、x=inv(A'A)*A'l
lind.m文件如下,
%求解线性方程组
% x1 + 2x2 + 3x3 + 9x4 = 5
%2x1 + 2x2 + 5x3 + 4x4 = 2
%3x1 + 5x2 + x3 + 5x4 = 3
%7x1 + 4x2 + 2x3 -10x4 = 8
A=[1 2 3 9;2 2 5 4;3 5 1 5;7 4 2 -10];
b=[5 2 3 8]';
x=A\b
c=inv(A)*b
d=inv(A'*A)*A'*b
输出
>> lind.m
x =
4.9227
-3.2373
-1.1680
1.1173
c =
4.9227
-3.2373
-1.1680
1.1173
d =
4.9227
-3.2373
-1.1680
1.1173
Warning: Direct access of structure fields returned by a function call (e.g.,
call to lind) is not allowed. See MATLAB 7.10 Release Notes, "Subscripting Into Function Return Values" for details.
??? Attempt to reference field of non-structure array.
求线性方程组通解
lind.m内容如下
%求解线性方程组通解
% X1 +5 *X2 -1 *X3 -1 *X4 = -1
% X1 -2 *X2 +1 *X3 +3 *X4 = 3
%3*X1 +8 *X2 -1 *X3 +1 *X4 = 1
% X1 -9 *X2 +3 *X3 +7 *X4 = 7
%系数矩阵和增广矩阵的秩都为2,说明有多组解,且基础解系4-2=2
%求基础解系用Z=null(A,'r'),可获得标准化的基础解系。特解采用广义逆函数pinv(A),
%可求得A的广义逆矩阵,采用x0=pinv(A)*b求得特解,通解为x=k1*x1+k2*x2+...+kn*xn+x0
A=[1 5 -1 -1 ;
1 -2 1 3;
3 8 -1 1;
1 -9 3 7];
b=[-1 3 1 7]';
r1=rank(A)%系数矩阵的秩
r2=rank(A,b)%增广矩阵的秩
Z=null(A,'r')%求基础解系
x0=pinv(A)*b%求得特解
%验证该解
k1=rand(1);
k2=rand(1);
x=k1*Z(:,1)+k2*Z(:,2)+x0
err=norm(A*x-b)
>> lind.m
r1 =
2
r2 =
2
Z =
-0.4286 -1.8571
0.2857 0.5714
1.0000 0
0 1.0000
x0 =
0.3785
-0.0876
0.1873
0.7530
x =
-0.1805
0.0994
0.2848
1.0315
err =
1.8971e-015
矛盾方程组最小二乘解
%矛盾方程组的最小二乘解
%原始数据表
% x 1 1 2 2 2 3 3 4 4 4 5 6
% y 14.8 15.9 20.2 20.0 18.55 22.2 20.9 21 18.3 20.7 16.1 14.75
% 分别一次
A=[ 1 1 2 2 2 3 3 4 4 4 5 6]';
t=ones(size(A));
A1=[t,A];
y= [14.8 15.9 20.2 20.0 18.55 22.2 20.9 21 18.3 20.7 16.1 14.75]';
%x=inv(A'*A)*A'*y
x1=pinv(A1)*y%线性回归方程系数
n=length(A);
rmse1=sqrt(sum((y-A1*x1).^2)/n)%均方误差
xsq=A.^2;
A2=[t,A,xsq]
x2=pinv(A2)*y%线性回归方程系数
rmse2=sqrt(sum((y-A2*x2).^2)/n)%均方误差
xmin=min(A);
xmax=max(A);
nx1=xmin:0.2:xmax;
ny1=x1(1)+x1(2)*nx1;
nx2=nx1;
ny2=x2(1)+x2(2)+x2(3)*nx2.^2;
plot(A',y,'*',nx1,ny1,'+b',nx2,ny2,'r')
输出
>> lind.m
x1 =
18.8820
-0.0861
rmse1 =
2.5105
A2 =
1 1 1
1 1 1
1 2 4
1 2 4
1 2 4
1 3 9
1 3 9
1 4 16
1 4 16
1 4 16
1 5 25
1 6 36
x2 =
10.3924
6.3994
-0.9793
rmse2 =
1.0960
分享到:
相关推荐
MATLAB解线性方程组MATLAB解线性方程组MATLAB解线性方程组
解线性方程组的迭代法汇总:rs里查森迭代法求线性方程组Ax=b的解crs里查森参数迭代法求线性方程组Ax=b的解grs里查森迭代法求线性方程组Ax=b的解jacobi雅可比迭代法求线性方程组Ax=b的解gauseidel高斯-赛德尔迭代法求...
这是一个用介绍如何使用matlab解线性方程组
Matlab求解线性方程组 非线性方程组.docxMatlab求解线性方程组 非线性方程组.docxMatlab求解线性方程组 非线性方程组.docxMatlab求解线性方程组 非线性方程组.docxMatlab求解线性方程组 非线性方程组.docxMatlab求解...
Matlab求解线性方程组、非线性方程组.docxMatlab求解线性方程组、非线性方程组.docxMatlab求解线性方程组、非线性方程组.docxMatlab求解线性方程组、非线性方程组.docxMatlab求解线性方程组、非线性方程组....
MATLAB软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大...Matlab解线性方程组是比较经典的题目,需要熟练掌握。
Matlab求解线性方程组、非线性方程.pdfMatlab求解线性方程组、非线性方程.pdfMatlab求解线性方程组、非线性方程.pdfMatlab求解线性方程组、非线性方程.pdfMatlab求解线性方程组、非线性方程.pdfMatlab求解线性方程组...
Matlab求解线性方程组、非线性方程.docxMatlab求解线性方程组、非线性方程.docxMatlab求解线性方程组、非线性方程.docxMatlab求解线性方程组、非线性方程.docxMatlab求解线性方程组、非线性方程.docxMatlab求解线性...
Matlab解线性方程组的迭代法-解线性方程组的迭代法.rar 解线性方程组的迭代法 一起分享 附件内容: Figure6.jpg
MATLAB求解非线性方程组 fsolve
mulStablePoint 用不动点迭代法求非线性方程组的一个根 mulNewton 用牛顿法法求非线性方程组的一个根 mulDiscNewton 用离散牛顿法法求非线性方程组的一个根 mulMix 用牛顿-雅可比迭代法求非线性方程组的一个根 ...
解线性方程组的迭代法MATLAB源代码(共15个),具体函数及功能如下: 函数名 功能 rs 里查森迭代法求线性方程组Ax=b的解 crs 里查森参数迭代法求线性方程组Ax=b的解 grs 里查森迭代法求线性方程组Ax=b的解 jacobi ...
解线性方程组常见的QR分解法,尤其是针对大型矩阵,比较实用
matlab平方根法和改进平方根法求解线性方程组例题与程序文件.docxmatlab平方根法和改进平方根法求解线性方程组例题与程序文件.docxmatlab平方根法和改进平方根法求解线性方程组例题与程序文件.docxmatlab平方根法和...
Matlab 求解线性方程组 Ax=b 的几种常见方法 例如方程组: 法 1:左除法 >> A=[3 1 -1;1 2 4;-1 4 5];b=[3.6;2.1;-1.4]; >> x=A\b x = 1.4818 -0.4606 0.3848 法 2:求逆法 >> A=[3 1 -1;1 2 4;-1 4 5];b=[3.6;...
Matlab解线性方程组
mulStablePoint 用不动点迭代法求非线性方程组的一个根 mulNewton 用牛顿法法求非线性方程组的一个根 mulDiscNewton 用离散牛顿法法求非线性方程组的一个根 ...mulDamp 用阻尼最小二乘法求非线性方程组的一组解
用matlab解线性方程组用matlab解线性方程组用matlab解线性方程组用matlab解线性方程组