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

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
matlab教程ppt(完整版)

矩阵的数学运算
总结词
详细描述
总结词
详细描述
掌握矩阵的数学运算,如求逆 、求行列式、求特征值等。
在MATLAB中,可以使用inv() 函数来求矩阵的逆,使用det() 函数来求矩阵的行列式,使用 eig()函数来求矩阵的特征值。 例如,A的逆可以表示为 inv(A),A的行列式可以表示 为det(A),A的特征值可以表 示为eig(A)。
• 总结词:了解特征值和特征向量的概念及其在矩阵分析中的作用。 • 详细描述:特征值和特征向量是矩阵分析中的重要概念。特征值是满足Ax=λx的标量λ和向量x,特征向量是与特征值对
应的非零向量。特征值和特征向量在许多实际问题中都有应用,如振动分析、控制系统等。
04
MATLAB图像处理
图像的读取与显示
变量定义
使用赋值语句定义变量,例如 `x = 5`。
矩阵操作
学习如何创建、访问和操作矩 阵,例如使用方括号 `[]`。
函数编写
学习如何创建自定义函数来执 行特定任务。
02
MATLAB编程
变量与数据类型
01
02
03
变量命名规则
MATLAB中的变量名以字 母开头,可以包含字母、 数字和下划线,但不应与 MATLAB保留字冲突。
了解矩阵的数学运算在实际问 题中的应用。
矩阵的数学运算在许多实际问 题中都有应用,如线性方程组 的求解、矩阵的分解、信号处 理等。通过掌握这些运算,可 以更好地理解和解决这些问题 。
矩阵的分解与特征值
• 总结词:了解矩阵的分解方法,如LU分解、QR分解等。
• 详细描述:在MATLAB中,可以使用lu()函数进行LU分解,使用qr()函数进行QR分解。这些分解方法可以将一个复杂的 矩阵分解为几个简单的部分,便于计算和分析。
matlab教程ppt(完整版)

数据处理
应用MATLAB的信号处理和统计 分析函数库,进行数据预处理、
特征提取和模型训练。
机器学习与深度学习
机器学习
介绍MATLAB中的各种机器学习算法,如线性回归、决策 树、支持向量机等,以及如何应用它们进行分类、回归和 聚类。
深度学习
介绍深度学习框架和网络结构,如卷积神经网络(CNN) 、循环神经网络(RNN)等,以及如何使用MATLBiblioteka B进行 训练和部署。感谢观看
THANKS
符号微积分
进行符号微分和积分运算,如极限、导数和 积分。
符号方程求解
使用solve函数求解符号方程。
符号矩阵运算
进行符号矩阵的乘法、转置等运算。
05
MATLAB应用实例
数据分析与可视化
数据分析
使用MATLAB进行数据导入、清 洗、处理和分析,包括描述性统
计、可视化、假设检验等。
可视化
利用MATLAB的图形和可视化工 具,如散点图、柱状图、3D图等
数值求和与求积
演示如何对数值进行求和与求积 操作。
数值计算函数
介绍常用数值计算函数,如sin、 cos、tan等。
方程求解
演示如何求解线性方程和非线性方 程。
03
MATLAB编程基础
控制流
01
02
03
04
顺序结构
按照代码的先后顺序执行,是 最基本的程序结构。
选择结构
通过if语句实现,根据条件判 断执行不同的代码块。
数据分析
数值计算
MATLAB提供了强大的数据分析工具,支 持多种统计分析方法,可以帮助用户进行 数据挖掘和预测分析。
MATLAB可以进行高效的数值计算,支持 多种数值计算方法,包括线性代数、微积 分、微分方程等。
《MATLAB的数值计算》课件

误差的传播遵循一定的规律,可以通过误差分析 来预测和控制误差的大小和影响。
数值计算的稳定性分析
稳定性的定义
01
如果一个数值方法的解在舍入误差的影响下保持稳定,则称该
方法具有稳定性。
不稳定性的表现
02
不稳定的数值方法可能导致解的振荡、发散或失去物理意义。
稳定性分析的方法
03
稳定性分析可以通过数值实验、数学分析和图形绘制等方法来
GPU加速计算概述
GPU加速计算是一种利用图形处 理器(GPU)进行通用计算的技 术。通过将计算任务分配给GPU 处理,可以显著提高程序的运行 速度。在Matlab中,GPU加速计 算可以利用Matlab的GPU数组和 GPU函数实现。
GPU加速计算的优点
GPU加速计算可以显著提高程序 的运行速度,特别是对于大规模 数据和高维度的计算任务。由于 GPU具有大量的并行处理单元, 可以同时处理多个数据,因此 GPU加速计算在处理大规模数据 时具有很高的效率。
数据分析和机器学习
Matlab提供了大量的数据分析工具和机器学习算法库。
控制系统设计
Matlab具有强大的控制系统设计和分析功能。
信号处理和通信
Matlab在信号处理和通信领域有广泛应用。
02
CATALOGUE
数值计算基础
数值计算的基本概念
数值计算的定义
数值算的应用领域
数值计算是使用数学方法对实际问题 进行近似求解的过程,涉及数学建模 、算法设计、编程实现等方面。
数值计算广泛应用于科学、工程、经 济和社会等领域,是现代科学和技术 发展的重要支撑。
数值计算的特点
数值计算具有高效性、精确性和可重 复性,能够解决许多实际问题,如物 理模拟、金融分析、数据处理等。
Matlab中的运算Matlab软件与基础数学实验学习PPT教案

22
►f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6'); fplot(f,[0,2]); grid c=fzero(f,[0,2]) %求 f(x)在[0,2]上的零点
◄ c= 1.2995
► c=fzero(f,1) %求 f(x)在 x=1附近的零点 ◄ c=
B的每个元素减 s
矩阵乘法
A的每个元素乘以数 s A的每个元素除以数 s A右除 B( B)inv( A) A左除 B( in)v( A) B A的 次n幂
点运算
A. B.C B. / C B.^ n
含义
矩阵 A的转置
同型矩阵中对应运 算相乘
同型矩阵中对应运 算相除
B中每一元素的 n
次幂
2
▪ 二、矩阵的建立和访问
法1 plot
►x=0:0.01:2;
y=1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6;
plot(x,y,'linewidb])
►f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');
[v,d]=eig(a)
◄ v=
-0.2320 -0.7858 0.4082
-0.5253 -0.0868 -0.8165
-0.8187 0.6123 0.4082
d=
16.1168 0
0
0
-1.1168 0
0
0
-0.0000
12
矩阵元素的修改
MATLAB基础及应用课件(下)第5-8章

图5-5 拟合曲线
第5章 MATLAB数值计算
第5章 MATLAB数值计算
5.4.4 图形窗口的拟合和统计工具
第5章 MATLAB数值计算
在图5-6中的“绘制拟合图”中选择拟合方 法(可同时选多种);
“显示方程”复核框可以选择是否在图形上 显示拟合多项式;
“绘制残差图”复核框选中时会产生第二幅 图形,该图形显示了每一个数据点与计算出来的 拟合曲线之间的距离。
例如选择“线性”和“三次方”拟合方法, 同时选中两个复核框,产生图形如图5-7所示。
MATLAB的图形窗口中提供了简单方便的数 据拟合和基本统计工具。
数据拟合工具可以对所绘制的曲线使用多种 方法进行拟合;
基本统计工具可提供最小值、最大值、平均 值、中位值、标准差、数据范围等统计运算。
1.数据拟合工具
第5章 MATLAB数值计算
使用数据拟合工具首先需要创建一幅图形,在 命令行窗口输入以下程序:
两个矩阵x和y的相关系 数
第5章 MATLAB数值计算
5.2 数值运算 一、 多项式
名称
创建多项 式
求根
求值
多项式乘 法
多项式除 法
多项式求 导
函数格式 P=[ a0 a1 a2 …an-1
an] P=poly(A) roots(P) polyval(P,A)
polyvalm(P,m)
说明
P为多项式(以下各函数中P均为多项式),a0 a1 a2 … an-1 an为按降幂顺序排列的多项式系数 A为向量。创建以向量A中元素为根的多项式
第8章 积分的MATLAB求解

无穷限的反常积分
对于无穷区间上的反常积分通常有两种解决方法,下面分别介绍: 无穷区间逼近 为叙述方便,仅考虑积分 的求解,由于
因此,取
且
,有
上式中的每个积分都是正常积分,利用前面介绍的方法求解。当
时停止计算。
变量替换
在某些情况下,可以通过变量替换将无穷区间的积分变成有限区间的积分。例如,用 变量替换
1.不定积分的定义
如果在区间 上,可导函数
称为被积函数,
称为被积表达式, 称为积分变量,也
。
2.不定积分的几何意义
函数 的一个原函数 的图像称为 的一条积分曲线。对于任意常数 , 表示的是一族曲线,我们称这个曲线族为 的积分曲线族。因此, 在几何上表示的是 的积分曲线族,而 正是积分曲线的斜率。积分曲线族中的每一条曲线在对应于同一横 坐标 处的切线都有相同的斜率 ,所以在这些点处,它们的切线相互平行,并且任意 两条积分曲线的纵坐标之间相差一个常数。因此,积分曲线族中的每一条曲线都可以由曲线 沿 轴上下移动而得到,如图所示。
1.无穷限的反常积分
这时也称反常积分 收敛;如果上述极限不存在,则函数 就没有意义,习惯上称为反常积分 发散,这时记号 类似地,设函数 在无穷区间 在区间 上连续,取 上的反常积分,记作 ,如果极限 ,即
在区间 上的反常积分 不再表示数值。 存在,则称此极限为函
数
这时也称反常积分 设函数 在区间
收敛;如果上述极限不存在,则称反常积分 发散。 上连续,如果反常积分 和 都收敛,则称上述两反常积分之和为函数 在无穷区间 上的反常积分,记作
这时也称反常积分 类似地,设函数 存在,则定义
收敛,如果上述极限不存在,则称反常积分 发散。 在 上连续,点 为函数 的瑕点,取 ,如果极限
MATLAB经典教程(全)PPT课件

THANKS FOR WATCHING
感谢您的观看
信号时域分析和频域分析
时域分析
研究信号随时间变化的规律,包括波形、幅度、频率、相位等。
频域分析
将信号转换为频域表示,研究信号的频谱结构和频率特性,包括幅 度谱、相位谱、功率谱等。
时域与频域关系
时域和频域是信号分析的两个方面,它们之间存在对应关系,可以 通过傅里叶变换相互转换。
数字信号处理基础
数字信号表示
MATLAB工作环境与界面
MATLAB工作环境
包括命令窗口、工作空间、命令历史窗口、当 前文件夹窗口等。
界面介绍
详细讲解MATLAB界面的各个组成部分,如菜 单栏、工具栏、编辑器窗口等。
基本操作
介绍如何在MATLAB环境中创建、保存、运行脚本和函数,以及如何进行基本 的文件操作。
基本数据类型与运算
数据统计描述性分析
描述性统计量
介绍均值、中位数、众数、方差、标准差等常见 描述性统计量的计算方法和意义。
数据分布形态
通过直方图、箱线图等图形展示数据的分布形态 ,帮助用户了解数据的整体特征。
数据间关系
探讨协方差、相关系数等统计量在揭示数据间关 系方面的应用。
数据可视化方法
二维图形绘制
详细讲解MATLAB中二维图形的绘制方法,包括线图、散点图、 柱状图等。
特征值与特征向量
特征值与特征向量的定义
设A为n阶方阵,若存在数λ和n维非零向量x,使得Ax=λx ,则称λ为A的特征值,x为A的对应于特征值λ的特征向量 。
特征值与特征向量的性质
包括特征值的和等于方阵对角线元素之和、特征值的积等 于方阵的行列式等性质。
MATLAB求解
使用MATLAB内置函数`eig`求解方阵的特征值和特征向量 。
matlab计算ppt课件

>>A+B
ans =
08
湖
0 -8
北 科
>>A*B
技 ans =
职 业
-8 -32
学 院
4 16
>>B*A ans =
00 -4 8
>>D=A/B ans =
-2 -2 11
>>A^2的运算 ✓多项式的表示方法及其运算
•MATLAB中,无论是一个多项式,还是它的根,都是向 量,MATLAB规定,多项式是行向量,根是列向量.例如, 多项式p(x)=x3-3x+5可以表示成p=[1 0 -3 5].给定一个 多项式的根,也可以构造相应的多项式.在MATLAB中, 函数poly(r)执行这个任务.
✓向量的快捷生成
•利用冒号”:”生成等差数列
①a=i:j初值:终值 如果i<j,则生成向量a=[i,i+1,…,j];
如果i>j,则生成空向量.
②a=i:k:j初值:步长:终值
湖 北
如果i<j且k>0,或者i>j且k<0,则生成步长为k的向量a=[i,i+1,…,j];
如果i<j且k<0,或者i>j,且k>0,则生成空向量.
A([1 3 5 ],[2 4 6])是A的第1、3、5行,第2、4、6列元素构成的子矩阵; A(:,7:-1:3)是A的第7、6、5、4、3列元素构成的子矩阵.
A(:,[2 4])=[]用于把A的第2、4列删除,形成A的一个子矩阵.
湖
北 ✓矩阵运算
科
技 •矩阵的四则运算
职
业 ①矩阵相加减.
学 院
同型矩阵相加减等于对应矩阵的元素相加减,用符号
数字信号处理(第2版)教学课件第8章 MATLAB仿真实验

系统的稳定性是指对任意有界的输入信号,系统都能 得到有界的系统响应,或者系统的单位脉冲响应满足绝对 可和的条件。系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界 的输入信号、输出是否都是有界输出,或者检查系统的单位 脉冲响应满足绝对可和的条件。可行的方法是在系统的输入 端加入单位阶跃序列,如果系统的输出趋近一个常数(包括 零),就可以断定系统是稳定的。系统的稳态输出是指当n→ ∞时系统的输出。如果系统稳定,信号加入系统后,系统输出 的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达 到稳态输出。
(2)频域采样理论的验证。 给定长度为26的三角波序列x(n) 编写程序,分别对频谱函数 X (e j ) FT[x(n)] 在区间 [0, 2π] 上等间隔采样32点和16点,得到 X32 (k) 和 X16 (k) ,再分别对 X32 (k)
和 ①X16分(k)别进画行出32X点(ej和 )、16X点32 (IkF)F和T,X1得6 (k到) 的x幅32 (度n)谱和。x16 (n) 。要求:
4. 参考程序
(1)内容1参考程序,实验结果。 (2)内容2参考程序,实验结果。 (3)内容3参考程序,实验结果。
5.实验结果
图8-1 调用filter解差分方程仿真结果
5.实验结果
图8-2 稳定性分析方面的仿真结果
5.实验结果
图8-3 稳定性分析仿真结果
实验二 时域采样与频域采样
1. 实验目的
y(n) 0.5y(n 1) 0.25y(n 2) x(n) 2x(n 1) x(n 3)
matlab教程(全)资料ppt课件

矩阵创建与基本操作
创建矩阵
使用`[]`或`zeros`、`ones`等函数创建矩阵
矩阵大小
使用`size`、`length`等函数获取矩阵大小
矩阵元素访问
通过下标访问矩阵元素,支持单个元素和子 矩阵访问
矩阵合并与拆分
使用`cat`、`horzcat`、`vertcat`等函数合并 或拆分矩阵
04
03
MATLAB的应用领域
MATLAB被广泛应用于算法开发、数据可视化、数 据分析以及数值计算等领域。
MATLAB的特点
MATLAB具有简单易用、高效灵活、可视化 强等特点,支持多种编程范式,包括命令式 编程、面向对象编程等。
MATLAB安装与启动
01
安装步骤
下载MATLAB安装包,解压后运行安装程序,按照提示 进行安装。
设置模型参数
介绍如何设置模型的仿真时间、步长等参数,以及如何进行模型的优化和调试 。
系统仿真与分析
运行Simulink模型
详细讲解如何启动仿真、暂停仿真以及停止 仿真,并介绍仿真过程中的注意事项。
查看仿真结果
介绍如何查看仿真结果,包括示波器、数据 记录器等工具的使用。
分析仿真结果
讲解如何对仿真结果进行分析和处理,包括 数据的导出、处理和分析等。
拟合方法
利用已知数据点构造近似函数,如最小二乘法、多项 式拟合、非线性拟合等。
插值与拟合的比较
插值函数经过所有数据点,而拟合函数则追求整体上 的近似。
数值积分与微分
01
数值积分方法
利用数值技术计算定积分的近似 值,如矩形法、梯形法、辛普森 法等。
02
数值微分方法
通过数值技术求解函数的导数或 微分,如差分法、中心差分法、 五点差分法等。
MATLAB教程第8章MATLAB数值积分与微分

MATLAB教程第8章MATLAB数值积分与微分1.数值积分数值积分是计算函数的定积分值的近似方法。
在MATLAB中,有几个函数可以帮助我们进行数值积分。
(1) quad函数quad函数是MATLAB中用于计算一维定积分的常用函数。
它的语法如下:I = quad(fun, a, b)其中,fun是被积函数的句柄,a和b分别是积分区间的下界和上界,I是近似的积分值。
例如,我们可以计算函数y=x^2在区间[0,1]内的积分值:a=0;b=1;I = quad(fun, a, b);disp(I);(2) integral函数integral函数是在MATLAB R2024a版本引入的新函数,它提供了比quad函数更稳定和准确的积分计算。
integral函数的语法如下:I = integral(fun, a, b)其中fun、a和b的含义与quad函数相同。
例如,我们可以使用integral函数计算函数y = x^2在区间[0, 1]内的积分值:a=0;b=1;I = integral(fun, a, b);disp(I);2.数值微分数值微分是计算函数导数的近似方法。
在MATLAB中,可以使用diff 函数计算函数的导数。
(1) diff函数diff函数用于计算函数的导数。
它的语法如下:derivative = diff(fun, x)其中,fun是需要计算导数的函数,x是自变量。
例如,我们可以计算函数y=x^2的导数:syms x;fun = x^2;derivative = diff(fun, x);disp(derivative);(2) gradient函数gradient函数可以计算多变量函数的梯度。
它的语法如下:[g1, g2, ..., gn] = gradient(fun, x1, x2, ..., xn)其中fun是需要计算梯度的函数,x1, x2, ..., xn是自变量。
例如,我们可以计算函数f=x^2+y^2的梯度:syms x y;fun = x^2 + y^2;[gx, gy] = gradient(fun, x, y);disp(gx);disp(gy);以上是MATLAB中进行数值积分和微分的基本方法和函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/10/18
17
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> diag(a)
• ans =
• 12 •3 •1
2020/10/18
18
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> diag(a,1)
MATLAB 7.0从入 门到精通
哈尔滨工业大学(威海) 汽车工程学院
2020/10/18
1
课程主要内容
• 第1章 MATLAB简介 • 第2章 数值运算 • 第3章 单元数组和结构 • 第4章 字符串 • 第5章 符号运算 • 第6章 MATLAB绘图基础 • 第7章 程序设计 • 第8章 计算方法的MATLAB实现 • 第9章 优化设计 • 第10章 SIMULINK仿真初探
• ans =
• 12 -3 3 • 0 3 -1 • 001
2020/10/18
12
程序实例
• >> triu(a,1) • ans = • 0 -3 3 • 0 0 -1 • 000 • >> triu(a,-1) • ans = • 12 -3 3 • -18 3 -1 • 011
2020/10/18
36
程序实例
• >> x=staticiterate([0 0]) • x= • 1.0000 1.0000
2020/10/18
37
Newton迭代法
2020/10/18
38
newtoniterate.m
• function s=newtoniterate(x,eps) • %newton迭代法解非线性方程组,x为迭代
2020/10/18
31
不动点迭代法
2020/10/18
32
staticiterate.m
• function s=staticiterate(x,eps) • %不动点迭代法解非线性方程组,x为迭代
初值,eps为允许误差 • if nargin==1 • eps=1.0e-6; • elseif nargin<1 • error • return • end
2020/10/18
22
• D=diag(diag(a));%求出对角矩阵 • D=inv(D);%求出对角矩阵的逆 • L=tril(a,-1);%求出严格下三角矩阵 • U=triu(a,1);%求出严格上三角矩阵
• B=-D*(L+U); • f=D*b; • s=B*x0+f; • while norm(s-x0)>=eps • x0=s; • s=B*x0+f; • end • return
2020/10/18
15
程序实例
• >> tril(a,1) • ans = • 12 -3 0 • -18 3 -1 • 111 • >> tril(a,-1) • ans = • 000 • -18 0 0 • 110
2020/10/18
16
• 对角变换
• U=diag(x)返回矩阵x主对角线上的元素,返 回结果是一列向量形式;
• x=
•1 •2 •3
2020/10/18
25
Gauss-Saidel迭代法
2020/10/18
26
gauss.m
• function s=gauss(a,b,x0,eps) • %gauss-seidel迭代法皆线性方程组 • %a为系数矩阵,b为方程组ax=b中的右边
的矩阵b,x0为迭代初值
2020/10/18
35
fx.m
• 首先编写上述非线性方程组的M文件fx.m
• function y=fx(x) • y(1)=0.1*(x(1)*x(1)+x(2)*x(2)+8); • y(2)=0.1*(x(1)*x(2)*x(2)+x(1)+8); • y=[y(1) y(2)];
2020/10/18
2020/10/18
28
程序实例
• 用上面编写的gauss函数求解下列方程组
10x1 2x2 x3 6 2x1 2x2 x3 10 x1 2x2 5x3 10
2020/10/18
29
程序实例
• >> a=[10 -2 -1;-2 2 -1;-1 -2 5]; • >> b=[6;10;10]; • >> x=gauss(a,b,[0 0 0]',eps)
• x=
•4 • 13 •8
2020/10/18
30
8.3 非线性方程组数值解法
• 与线性方程组的求解一样,非线性方程组 的求解也是应用很广泛的课题。一般情况, 非线性方程组的数值解法主要采用迭代法 来求解。比较常用的迭代法主要有不动点 迭代法、Newton迭代法、拟Newton迭代法 等几种方法。
endpoints must differ in sign.
2020/10/18
6
8.2 线性方程组数值解法
• 线性方程组的求解不仅在工程技术领域涉 及到,而且在其他的许多领域也经常碰到, 因此这是一个应用相当广泛的课题。
• 关于线性方程组的数值解法一般分为两类: 一类是直接法,就是在没有舍入误差的情 况下,通过有限步四则运算求得方程组准 确解的方法。另一类是迭代法,就是先给 定一个解的初始值,然后按一定的法则逐 步求出解的各个更准确的近似值的方法。
初值,eps为允许误差
• if nargin==1 • eps=1.0e-6; • elseif nargin<1 • error • return • end
2020/10/18
39
• x1=fx1(x);%非线性方程组 • x2=-dfx1(x);%非线性方程组导数 • x3=inv(x2); • x0=x3*x1'; • while norm(x0)>=eps • x=x0'+x; • x1=fx1(x); • x2=-dfx1(x); • x3=inv(x2); • x0=x3*x1'; • end • s=x0'+x; • return
2020/10/18
10
8.2.2 线性方程组求解中的变换
• 上三角变换
• U=triu(x)返回矩阵x的上三角部分; • U=triu(x,k)返回第k条对角线以上部分的元
素。
2020/10/18
11
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> triu(a)
2020/10/18
7
8.2.1 直接解法
• 关于线性方程组的直接解法有许多种,比 如Gauss消去法、列主元消去法、平方根法 等。而在MATLAB中,线性方程组的直接 解法只需用符号“/”或“\”就解决问题。还 可以使用逆阵函数来求解: x=inv(A)*B。
2020/10/18
8
程序实例
• 求解下列方程组
2020/10/18
2
第8章 计算方法的MATLAB实现
• 随着计算机的迅速发展与广泛运用,在众 多的领域,科学计算方法的应用越来越广 泛了,而MATLAB在进行科学计算方面有 着无与伦比的优势。本章介绍MATLAB在 计算方法中的运用。
2020/10/18
3
程序实例
• >> 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
2020/10/18
40
程序实例
• 用上面编写的newton迭代函数求解下列 方程组
xx112x2210xx111x202x28800
2020/10/18
41
fx1.m和dfx1.m
• 首先,编写上述非线性方程组的M文件fx1.m • function y=fx1(x) • y(1)=x(1)*x(1)-10*x(1)+x(2)*x(2)+8; • y(2)=x(1)*x(2)*x(2)-10*x(2)+x(1)+8; • y=[y(1) y(2)]; • 然后,编写上述非线性方程组导数的M文件dfx1.m • function y=dfx1(x) • y(1)=2*x(1)-10; • y(2)=2*x(2); • y(3)=x(2)*x(2)+1; • y(4)=2*x(1)*x(2)-10; • y=[y(1) y(2);y(3) y(4)];
• if nargin==3 • eps=1.0e-6; • elseif nargin<3 • error • return • end
2020/10/18
27
• L=tril(a,-1);%求出严格下三角矩阵 • D=diag(diag(a));%求出对角矩阵 • U=triu(a,1);%求出严格上三角矩阵 • C=inv(D+L); • B=-C*U; • f=C*b; • s=B*x0+f; • while norm(s-x0)>=eps • x0=s; • s=B*x0+f; • end • return