第10章 代数方程组的MATLAB求解 编者
Outline 10.1 线性方程组的求解 10.2 多项式方程组的准解析解法 10.3 超越方程组的求解
10.1 超越方程组的求解 1.克莱姆(Cramer)法则及其MATLAB实现 对于恰定线性方程组 10.1 超越方程组的求解 1.克莱姆(Cramer)法则及其MATLAB实现 对于恰定线性方程组 若其系数行列式 , 则上述线性方程组有唯一解 其中 是把D 中第j 列元素 对应地换成常数项 ,而其余各列保持不变所得到的行列式,这就是克莱姆(Cramer)法则。 MATLAB中没有提供实现克莱姆法则的函数,这需要我们自行编写相应的函数文件
2.消去法及其MATLAB实现 上三角形方程组的求解 称形如 的方程组为上三角形方程组 ,写成矩阵形式为 其中 称 U为上三角矩阵。若 即 称形如 的方程组为上三角形方程组 ,写成矩阵形式为 其中 称 U为上三角矩阵。若 即 则上三角方程组有唯一解,且可从上式的最后一个方程解出 代入倒数第二个方程可得 一般地,设已求得 ,则由上述方程组的第i个方程可得 上述求解方程组的过程称为回代过程。
Gauss消去法 Gauss消去法是求解线性方程组较为有效的方法,它主要包括两个操作:消元和迭代。顺序Gauss消去法是指按行原先的位置进行消元的Gauss消去法。下面介绍顺序Gauss消去法的一般步骤。为叙述方便,将线性方程组 写成增广矩阵的形式 其中
4.迭代法及其MATLAB实现 迭代法是求解线性方程组的一个重要的使用方法,特别适用于求解系数矩阵为稀疏矩阵的大型线性方程组。 3.矩阵分解法及其MATLAB实现 求解线性方程组除了消去法,还有矩阵分解方法。所谓矩阵分解方法,就是将矩阵 A 分解成两个或多个简单矩阵的乘积,由于分解后的矩阵具有某种特殊性,因此便于方程组的求解。 4.迭代法及其MATLAB实现 迭代法是求解线性方程组的一个重要的使用方法,特别适用于求解系数矩阵为稀疏矩阵的大型线性方程组。 Jacobi迭代法 Gauss-Seidel迭代法 逐次超松弛迭代法 5.线性方程组的MATLAB函数求解 齐次线性方程组的求解 非齐次线性方程组的求解
10.2 多项式方程组的准解析解法 求下面的二元多项式方程组。 对于本题,我们也可以使用roots函数求解 首先将 代入 则得到关于 的一元多项式 试求解下面的含自变量导数形式的多项式型方程组。
10.3 超越方程组的求解 1.牛顿法及其MATLAB实现 牛顿法求解非线性方程组 的根 首先将多元向量函数 在点 处展开 10.3 超越方程组的求解 1.牛顿法及其MATLAB实现 牛顿法求解非线性方程组 的根 首先将多元向量函数 在点 处展开 其中, 是 的Jacobi矩阵。 解方程 得 上式写成迭代格式为: 牛顿法的一般执行流程(右图) 图 Newton法执行流程
MATLAB优化工具箱提供的fsolve函数是专门用来求解非线性方程组的实数根的函数。 【分析】对于这样一个比较复杂的函数,我们不好判断它的零点的范围,只有先画出图形观察。执行如下语句,得到函数图形如图所示。 图 函数图形 由图可知,题述函数共有5个根,下面利用鼠标取点函数ginput选取迭代初始值,然后利用fsolve函数求解
谢谢大家!