matlab 解函数方程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

本文是MATLAB程序设计教程的第七章,重点讲解如何使用MATLAB求解线性方程组、非线性方程、常微分方程初值问题以及寻找函数的极值。介绍了包括直接解法(如LU、QR、Cholesky分解)、迭代解法(Jacobi和Gauss-Seidel迭代)以及fzero和fsolve函数在求解单变量和多变量非线性方程中的应用。此外,还讨论了ode23和ode45函数在数值求解常微分方程中的使用。
摘要由CSDN通过智能技术生成

MATLAB程序设计教程(7)——MATLAB解方程与函数极值

第7章MATLAB解方程与函数极值

7.1  线性方程组求解

7.2  非线性方程数值求解

7.3  常微分方程初值问题的数值解法

7.4 函数极值

7.1线性方程组求解

7.1.1 直接解法

1.利用左除运算符的直接解法

对于线性方程组Ax=b,可以利用左除运算符“/”求解:

x=A/b

例7-1  用直接解法求解下列线性方程组。

命令如下:

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]’;

x=A/b

2.利用矩阵的分解求解线性方程组

矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。

(1) LU分解

矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要方阵A是非奇异的,LU分解总是可以进行的。

MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:

[L,U]=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。

[L,U,P]=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。

实现LU分解后,线性方程组Ax=b的解x=U/(L/b)或x=U/(L/Pb),这样可以大大提高运算速度。

例7-2  用LU分解求解例7-1中的线性方程组。

命令如下:

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]’;

[L,U]=lu(A);

x=U/(L/b)

或采用LU分解的第2种格式,命令如下:

[L,U ,P]=lu(A);

x=U/(L/P*b)

(2) QR分解

对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只能对方阵进行。MATLAB的函数qr可用于对矩阵进行QR分解,其调用格式为:

[Q,R]=qr(X):产生一个一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR。

[Q,R,E]=qr(X):产生一个一个正交矩阵Q、一个上三角矩阵R以及一个置换矩阵E,使之满足XE=QR。

实现QR分解后,线性方程组Ax=b的解x=R/(Q/b)或x=E(R/(Q/b))。

例7-3  用QR分解求解例7-1中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值