当前位置:文档之家› Matlab(R2009a版)-第8讲 计算方法的MATLAB实现

Matlab(R2009a版)-第8讲 计算方法的MATLAB实现

MATLAB2009 从入门到精通
2019/2/16 1
课程主要内容
• • • • • • • • • • 第1章 MATLAB简介 第2章 数值运算 第3章 单元数组和结构 计 第8章 计算方法的MATLAB实现 第9章 优化设计 第10章 SIMULINK仿真初探
16
2019/2/16
• 对角变换
• U=diag(x)返回矩阵x主对角线上的元素,返回结 果是一列向量形式; • U=diag(x,k)返回第k条对角线上的元素值。 • 当x为向量时生成矩阵。
2019/2/16
17
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> diag(a) • ans = • • • 12 3 1
12x1 3x2 3x3 15 18x1 3x2 x3 15 x x x 6 1 2 3
2019/2/16
9
程序实例
• • • • • • • • • • • • >> a=[12 -3 3;-18 3 -1;1 1 1]; >> b=[15;-15;6]; >> x1=a\b x1 = 1.0000 2.0000 3.0000 >> x2=inv(a)*b x2 = 1 2 3
2019/2/16
14
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> tril(a) • ans = • • • 12 0 0 -18 3 0 1 1 1
2019/2/16
15
程序实例
• • • • • • • • • • >> tril(a,1) ans = 12 -3 0 -18 3 -1 1 1 1 >> tril(a,-1) ans = 0 0 0 -18 0 0 1 1 0
2
2019/2/16
第8章 计算方法的MATLAB实现
• 随着计算机的迅速发展与广泛运用,在众多的领 域,科学计算方法的应用越来越广泛了,而 MATLAB在进行科学计算方面有着无与伦比的优 势。本章介绍MATLAB在计算方法中的运用。
2019/2/16
3
8.1 方程求根
• • • • roots见多项式求根;roots(多项式系数矩阵) fzero可求解非线性方程,它的格式为: fzero(‘function’,x0) 其中function为求解的方程,x0为估计的根,x0可 为标量或长度为2的向量,为向量时函数的两端的 值应该符号相反,此时求区间上的解。只能求解 x0附近的一个解。即使在某个区间内有多个解, 但是区间端点符号相同的话仍然出错。
2019/2/16
7
8.2.1 直接解法
• 关于线性方程组的直接解法有许多种,比如Gauss 消去法、列主元消去法、平方根法等。而在 MATLAB中,线性方程组的直接解法只需用符号 “/”或“\”就解决问题。还可以使用逆阵函数来求 解: x=inv(A)*B。
2019/2/16
8
程序实例
• 求解下列方程组
2019/2/16
5
程序实例
• • • • • • • • • >> fzero('x^2-3*x+2',0) ans = 1.0000 >> fzero('x^2-3*x+2',3) ans = 2.0000 >> fzero('x^2-3*x+2',[0,4]) ??? Error using ==> fzero The function values at the interval endpoints must differ in sign.
2019/2/16
18
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> diag(a,1) • ans = • -3 • -1 • >> diag(a,-1)
• ans = • -18 • 1
2019/2/16 19
8.2.3 迭代解法
• 迭代解法非常适用于求解大型稀疏系数矩阵的方 程组,在线性方程组常用的迭代解法主要有Jacobi 迭代法、Gauss-Seidel迭代法。
2019/2/16
12
程序实例
• • • • • • • • • • >> triu(a,1) ans = 0 -3 3 0 0 -1 0 0 0 >> triu(a,-1) ans = 12 -3 3 -18 3 -1 0 1 1
2019/2/16
13
• 下三角变换
• U=tril(x)返回矩阵x的下三角部分; • U=tril(x,k)返回第k条对角线以上下部分的元素。
2019/2/16
4
程序实例
• • • • • • • • • >> fzero('x^3-3*x-1',2) ans = 1.8794 >> fzero('x^3-3*x-1',[1,4]) ans = 1.8794 >> fzero('x^3-3*x-1',[2,4]) ??? Error using ==> fzero The function values at the interval endpoints must differ in sign.
10
2019/2/16
8.2.2 线性方程组求解中的变换
• 上三角变换
• U=triu(x)返回矩阵x的上三角部分; • U=triu(x,k)返回第k条对角线以上部分的元素。
2019/2/16
11
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> triu(a) • ans = • • • 12 0 0 -3 3 3 -1 0 1
2019/2/16
6
8.2 线性方程组数值解法
• 线性方程组的求解不仅在工程技术领域涉及到, 而且在其他的许多领域也经常碰到,因此这是一 个应用相当广泛的课题。 • 关于线性方程组的数值解法一般分为两类:一类 是直接法,就是在没有舍入误差的情况下,通过 有限步四则运算求得方程组准确解的方法。另一 类是迭代法,就是先给定一个解的初始值,然后 按一定的法则逐步求出解的各个更准确的近似值 的方法。
相关主题