码迷,mamicode.com
首页 > 其他好文 > 详细

MATLAB学习笔记(七)——MATLAB解方程与函数极值

时间:2015-02-16 11:23:51      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

(一)线性方程组求解

包含n个未知数,由n个方程构成的线性方程组为:

技术分享

其矩阵表示形式为:技术分享

其中

技术分享

一、直接求解法

1、左除法

x=A\b;

     如果A是奇异的,或者接近奇异的。MATLAB会发出警告信息的。

2、利用矩阵的分解来求解线性方程组(比单单进行左除速度快)

(1)LU分解

     LU分解就是分解成一个交换下三角矩阵(也就是说进行一定的操作后才是下三角矩阵)和一个上三角矩阵(不需要变换)的乘积形式。只要A是非奇异的,就可以进行LU分解。

     MATLAB提供的LU分解函数对于矩阵进行LU分解:

[L,U]=lu(X);      %X必须是方阵
[L,U,P]=lu(X);    %PX=LU。X必须是方阵

     实现LU分解之后,线性方程组Ax=b的解就为x=U\(L\b)或x=U\(L\Pb)、

(2)QR分解

     QR分解就是分解成一个正交矩阵Q和一个上三角矩阵R的乘积形式。只要A是非奇异的,就可以进行LU分解。QR只能对方阵进行分解。

[Q,R]=qr(X);        %X=QR
[Q,R,E]=qr(X);      %XE=QR

    实现QR分解之后,解为x=R\(Q\b)或x=E(R\(Q\b))。

(3)Cholesky分解

     如果X是正定的。则将矩阵分解成一个下三角矩阵和上三角矩阵的乘积。上三角矩阵为R,下三角矩阵为其转置,X=R’R.

     MATLAB进行CHolesky分解方法:

R=chol(X);
[R,p]=chol(X);        %p=0则为正定矩阵,返回一个R,或者p为一个正整数q=p-1,满足RR=X(1:q,1:q)

     则线性方程组的解为x=R\(R’\b)

二、迭代法求解

MATLAB学习笔记(七)——MATLAB解方程与函数极值

标签:

原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4293798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!