admin 管理员组

文章数量: 1086019


2024年3月29日发(作者:逻辑运算有哪些)

matlab微积分基本运算

§1 解方程和方程组解

1. 线性方程组求解

对于方程 AX = B ,其中 A 是( m×n )的矩阵有三种情形:

1)当n=m且A非奇异时,此方程为“恰定”方程组。

2)当 n > m 时,此方程为“超定”方程组。

3)当n

下面就三种情形的求解分别作一说明:

(1) MATLAB 解恰定方程 A* X = B 的方法

1)采用求逆运算解方程

x=inv(A)*B

2)采用左除运算解方程

x=AB

例1 “求逆”法和“左除”法求下列方程组的解

5x

1

6x

2

x

1

5x

2

6x

3

x

2

5x

3

6x

4

x

3

5x

4

6x

5

x

4

5x

5

在Matlab编辑器中建立M文件fanex1.m:

A=[5 6 0 0 0

1 5 6 0 0

0 1 5 6 0

0 0 1 5 6

0 0 0 1 5];

B=[1 0 0 0 1]';

R_A=rank(A) %求秩

X1=AB %用"左除"法解恰定方程所得的解

X2=inv(A)*B %用"求逆"法解恰定方程所得的解

运行后结果如下

R_A =

5

X1 =

2.2662

-1.7218

1.0571

-0.5940

0.3188

X2 =

2.2662

-1.7218

1

1

0

0

0

1

1.0571

-0.5940

0.3188

两种方法所求方程组的解相同。

(2)MATLAB 解超定方程AX=B的方法

对于方程 AX = B ,其中 A 是( m×n )的矩阵, n > m,如果A列满秩,则此方程是没有精确解

的。然而在实际工程应用中,求得其最小二乘解也是有意义的。基本解法有:

1)采用求伪逆运算解方程

x=pinv(A)*B

说明:此解为最小二乘解x=inv(A’*A)*A*B,这里pinv(A) =inv(A’*A)*A.

2)采用左除运算解方程

x=AB

例2 “求伪逆”法和“左除”法求下列方程组的解

x

1

2x

2

1

2x

1

4x

2

1

2x2x1

2

1

命令如下:

>> a=[1 2;2 4;2 2];

>> b=[1,1,1]';

>> xc=ab %用左除运算解方程

运行得结果:

xc =

0.4000

0.1000

>> xd=pinv(a)*b %用求伪逆运算解方程

运行得结果:

xd =

0.4000

0.1000

>> a*xc-b %xc是否满足方程ax=b

运行得结果:

ans =

-0.4000

0.2000

0.0000

可见xc并不是方程的精确解。

(3) MATLAB 解欠定方程AX=B的方法

欠定方程从理论上说是有无穷多个解的,如果利用求“伪逆”法和“左除”法来求解,只能得到其

中一个解。基本方法:

1)采用求伪逆运算解方程

2


本文标签: 方程 求解 方程组 基本 采用