第6章 MATLAB数值计算
第06章_MATLAB数值计算_参考解答

%可参见教材第 157 页例 6.19
运行结果: dx =
000
%当 x=pi/2 时单独计算 x=pi/2; f=inline('sin(x).^2+cos(x).^2'); dx=diff(f([x, pi]))/(pi/2)
dx = 0
(2) 程序设计: clear all; close all; clc; x=1:3; f=inline('sqrt(x.^2+1)'); dx=diff(f([x, 4]))
运行结果:
U= 1.0e-004 * -0.0675
0.1715
fmin = 1.9920e-010
(2) 程序设计: clear all; close all; clc; f=inline('-sin(x)-cos(x.^2)'); fmax=fminbnd(f, 0, pi)
%用内联函数,求负的最小值 %注意函数名 f 不加单引号'
高教社刘卫国《MATLAB 程序设计与应用》(第二版)习题参考解答
第 6 章:MATLAB 数值计算
教材 P189 习题六
第 6 章 MATLAB 数值计算
1. 利用 MATLAB 提供的 randn 函数生成符合正态分布的 10×5 随机矩阵 A,进行如下操 作:
(1) A 各列元素的均值和标准方差。 (2) A 的最大元素和最小元素。 (3) 求 A 每行元素的和以及全部元素之和。 (4) 分别对 A 的每列元素按升序、每行元素按降序排列。 答:
运行结果: P=
0
15.0000
7.0000 -3.5000
0.5000 -2.0000 -2.0000
第六讲 MATLAB数值计算

5.2.4 矩阵的秩
求矩阵秩的函数: rank(A)。
例如,求例 5.7 中方程组系数矩阵 D 的秩,命令是:
D=[2, 2, -1, 1; 4, 3, -1, 2; 8, 5, -3, 4; 3, 3, -2, 2]; r=rank(D) r= 4
说明D是一个满秩矩阵。
5.2.5 向量和矩阵的范数
第五讲 MATLAB数值计算
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 特殊矩阵 矩阵分析 矩阵分解与线性方程组求解 数据处理与多项式计算 傅立叶分析 数值微积分 常微分方程的数值求解 非线性方程的数值求解 稀疏矩阵
5.1 特殊矩阵
5.1.1 对角阵与三角阵
1. 矩阵的对角元素 (1)提取矩阵的对角线元素 设 A 为 m×n 矩阵, diag(A) 函数用于提取矩阵 A主对 角线元素产生一个具有min(m,n)个元素的列向量。 (2)构造对角矩阵
2. 矩阵的伪逆
对奇异方阵和长方阵,求矩阵伪逆的函数是 pinv(A)。
例5.5 求A的伪逆,并将结果送B。 A=[3,1,1,1; 1,3,1,1; 1,1,3,1]; B=pinv(A) 例5.6 求矩阵A的伪逆。 A=[0,0,0; 0,1,0; 0,0,1]; pinv(A)
5.2.3 方阵的行列式
函数A = pascal(n)生成一个n阶的帕斯卡矩阵。
1 1 3 4 6 10 10 20 15 35
1 5 15 35 70
5.2 矩阵分析
5.2.1 矩阵结构变换
1. 矩阵的转置
转置运算符是单撇号(')。
2. 矩阵的旋转
矩阵的旋转利用函数 rot90(A,k) ,功能是将矩阵 A旋 转90º 的k倍,当k为1时可省略。
MATLAB中的数学计算方法详解

MATLAB中的数学计算方法详解在科学研究和工程领域中,数学计算方法的应用是不可避免的。
MATLAB作为一种强大的数学工具,提供了丰富的数学函数和算法,为用户提供了便捷的数学计算方式。
本文将详细介绍MATLAB中常用的数学计算方法,包括数值计算、符号计算以及优化算法等。
一、数值计算方法数值计算是MATLAB中应用最广泛的数学计算方法之一。
它通过将数值代入数学模型,利用数值逼近的方式求得近似解。
MATLAB提供了各种数值计算函数,如插值、积分、微分等。
下面我们将介绍其中几种常用的数值计算方法。
1. 插值方法插值是一种通过已知数据点来估计未知数据点的方法。
在MATLAB中,可以使用interp1函数实现一维数据的插值。
该函数支持多种插值方法,例如线性插值、样条插值等。
用户只需提供已知的数据点和插值点,即可得到插值结果。
2. 数值积分方法数值积分是计算定积分近似值的方法。
在MATLAB中,可以使用quad函数来进行一维定积分计算。
该函数采用自适应的数值积分算法,能够适应不同类型的函数。
用户只需提供被积函数和积分区间,即可得到积分结果。
3. 数值微分方法数值微分是计算函数导数的方法。
在MATLAB中,可以使用diff函数对函数进行数值微分。
该函数可以计算一阶和二阶导数,还支持多点数值微分和符号数值微分。
通过数值微分,可以方便地求得函数在给定点的导数近似值。
二、符号计算方法符号计算是指在计算过程中处理符号表达式而不是数值。
MATLAB的Symbolic Math Toolbox提供了强大的符号计算功能,可以进行代数操作、求解方程、求导、积分等。
下面我们将介绍几种常用的符号计算方法。
1. 代数操作在MATLAB中,可以使用符号计算功能进行代数操作,如多项式求解、多项式展开、多项式化简等。
通过定义符号变量和符号表达式,可以进行各种代数计算,方便用户进行复杂的代数操作。
2. 方程求解MATLAB的符号计算工具箱提供了solve函数用于求解方程。
MATLAB_数值计算

b31 b32 b33
对于编程语言,矩阵就是二维的数组
2.1 MATLAB的基本计算
数学计算分为数值计算与符号计算,前者 不允许出现未定义变量,后者允许。(Eg 2-1) 常用的基本数学函数表。 (Eg 2-2)
Eg 2-1
三角函数
函数
sin sinh asin cos acos
说明
正弦函数 双曲正弦函数 反正弦函数 余弦函数 反余弦函数
MATLAB数值计算
2.1 MATLAB的基本计算 2.2 MATLAB矩阵和数组 2.3 关系和逻辑运算 2.4 多项式 2.5 稀疏矩阵 2.6 数据分析函数 2.7 数值分析
概述
在M语言中最常用的数据类型表现手段和形
式就是变量和常量
M语言的基本处理单位是数值矩阵或者数值
Eg 2-14 低维数组合成高维数组
建立3阶魔方及帕斯卡数组
将A、B串联成三维数组
cat(1,A,B)=[A;B]
cat(2,A,B)=[A,B]
>> A=eye(4) A= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> A(:,:,2)=eye(4)*10; >> A(:,:,3)=eye(4)*100 A(:,:,1) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A(:,:,2) = 10 0 0 0 0 10 0 0 0 0 10 0 0 0 0 10 A(:,:,3) = 100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
复数运算函数
函数
abs
பைடு நூலகம்
说明
求复数的模,若参数为实数则求绝对值
第6章MATLAB数值计算

第6章MATLAB数值计算MATLAB是一种流行的数值计算软件,它提供了各种函数和工具箱,用于解决数值计算问题。
在本章中,我们将介绍一些MATLAB中常用的数值计算方法和技巧。
1.数值计算基础:MATLAB中的数值计算基于矩阵和向量运算。
矩阵和向量在MATLAB中被表示为一维或多维数组。
用户可以使用MATLAB内置的函数来定义和操作这些数组。
2. 解方程:MATLAB提供了几种方法来解决线性和非线性方程。
对于线性方程组,可以使用内置的线性代数函数来求解,如inv(、\(和lsqnonneg(等。
对于非线性方程,可以使用内置的非线性方程求解函数fsolve(来求解。
3. 数值积分:MATLAB提供了多种数值积分方法来近似计算定积分。
用户可以使用内置的数值积分函数,如quad(、integral(和trapz(等,来计算定积分的数值近似值。
4. 微分方程:MATLAB提供了一些函数和工具箱来求解常微分方程。
用户可以使用内置的ODE求解器,如ode45(、ode23(和ode15s(等,来求解常微分方程的数值解。
5. 优化:MATLAB提供了一些函数和工具箱来解决优化问题。
用户可以使用内置的优化函数,如fminunc(、fmincon(和linprog(等,来寻找函数的最小值或满足一定约束条件的最优解。
6. 统计分析:MATLAB提供了丰富的统计函数和工具箱,用于数据分析和统计建模。
用户可以使用统计函数,如mean(、std(和histogram(等,来计算数据的平均值、标准差和直方图等。
7. 曲线拟合:MATLAB提供了一些函数和工具箱来进行曲线拟合。
用户可以使用内置的曲线拟合函数,如polyfit(、lsqcurvefit(和spline(等,来拟合数据并得到拟合曲线的参数。
8. 数值计算精度:MATLAB中的数值计算精度可以通过设置位数和步长来控制。
用户可以使用内置的设置函数,如format(和eps(等,来改变数值的显示格式和计算精度。
MATLAB的数值计算

2018/11/24
5
1.1 矩阵的生成
利用matlab内部函数产生矩阵
例如: b=eye(3); c= ones(2,5); d=zeros(3,2); e=rand(2,3); f=randn(2,3);
2018/11/24
单位阵 全一阵 全零阵 [0,1]之间随机阵 正态分布随机阵
6
例:分别建立3×3、3×2和与某矩阵A同样大小的零 矩阵。
对于一组数据,MATLAB用1×n矩阵来表示。
2018/11/24 2
例:
a=1.5; Whos a Name a
%显示变量a的信息
Size 1×1
Bytes 8
Class double array
SL=‘I am a good man’; Whos SL %显示变量SL的信息 Name SL
矩阵元素的访问
矩阵元素的单下标与全下标之间的转换关系 以m×n的矩阵为例
第i行第j列的元素全下标转换为单下标L
L=(j-1)×m+i
例:A(1,2)→A(5)
m=4,n=5,i=1,j=2 L=(j-1)×m+i=(2-1)×4+1=5
2018/11/24 17
矩阵元素的访问
sub2ind:根据全下标计算单下标 ind2sub:根据单下标计算全下标
动到要修改的矩阵元素上即可修改。
指令修改 可以用A(,)= 来修改。
2018/11/24 12
例:
>> a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(1,2)=4; a(4)=4; a(2,1:3) = [5 10 15]; a(2,1:end) a=1 3 7
Matlab第6章 数值计算功能

5
例 已知x=[-43,72,9,16,23,47],求向量x 的最大值和最小值。 x=[-43,72,9,16,23,47] y=max(x) %求向量x中的最大值 [y,k]=max(x) %求向量x中的最大值及其该元 素的位置 z=min(x) %求向量x中的最小值 [z,m]=min(x) %求向量x中的最小值及其该元 素的位置
6
2)求矩阵A的最大值和最小值 max(A) 返回一个行向量,向量的第i个元素 是矩阵A的第i列上的最大值。 [Y,K]=max(A) 返回行向量Y和K,Y向量记录A 每列的最大值,K向量记录每列最大值的行号。 max(A,[],dim) dim取1或2。dim取1时,该函 数和max(A)完全相同;dim取2时,该函数返 回一个列向量,其第i个元素是A矩阵的第i行 上的最大值。 • 求矩阵最小值的函数是min,其用法和max完 全相同。 7
第6章 数值计算功能
张燕 zy29209@
1
数据分析
MATLAB提供了方便的数据分析函数,可以 对较复杂的向量或矩阵元素进行数据分析。 分析原则 如果输入是向量,则按整个向量进行运算 如果输入是矩阵,则按列进行运算,运算 和列向量一样
2
6.1 数据统计和相关分析 6.2 差分与积分 *6.3 卷积和快速傅立叶变换
32
a)梯形法求积分 原理:把积分区间(a,b)分成n个小梯形,然后 将这n个小梯形的面积求和。 MATLAB提供了trapz()函数计算数值积分 梯形法求积分的结果不很精确
33
Z=trapz(Y) 以单位间隔,采用计算若干梯形 面积的和的方法来计算某函数的近似积分。 如果Y为向量,计算Y的积分;如果Y是矩阵, 得一个每列积分的行向量。 Z=trapz(X,Y) 用梯形积分法,依据X计算Y 的积分,X为自变量,Y为函数。如果X、Y 为向量,则大小必须相同;如果Y为矩阵, 则Y的列元素个数必须等于length(X)。 Z=trapz(X,Y,dim) dim=1,和trapz(X,Y)相 同,按列计算积分,dim=2,按行计算积分。
MATLAB数值计算教程

MATLAB数值计算教程第一章:MATLAB入门1.1 MATLAB简介MATLAB(Matrix Laboratory)是一款强大的数值计算软件,广泛用于工程、科学和金融领域。
它的特点是简单易用、高效快速,并且拥有丰富的工具箱和函数库。
1.2 MATLAB环境搭建要使用MATLAB进行数值计算,首先需要安装MATLAB软件,并进行必要的配置。
通过官方网站下载安装程序,根据提示进行安装即可。
安装完成后,打开MATLAB环境,即可开始使用。
1.3 MATLAB基本操作在MATLAB环境中,可以通过命令行窗口输入和执行命令,也可以使用脚本文件进行批量处理。
常用的基本操作包括变量赋值、算术运算、函数调用等。
例如,使用"="符号赋值变量,使用"+"、"-"、"*"、"/"等符号进行算术运算。
第二章:向量和矩阵操作2.1 向量操作在MATLAB中,向量是一种特殊的矩阵,可以通过一组有序的元素构成。
向量可以进行基本的算术运算,如加法、减法、乘法、除法,还可以进行向量的点积、叉积等操作。
可以使用内置函数和运算符来实现。
2.2 矩阵操作矩阵是MATLAB中最常用的数据结构之一,使用矩阵可以进行多个向量的组合和运算。
可以进行矩阵的加法、减法、乘法、除法等操作,也可以进行矩阵的转置、求逆、求特征值等操作。
MATLAB提供了大量的函数和工具箱来支持矩阵的操作。
第三章:数值计算方法3.1 数值积分数值积分是一种用数值方法计算定积分的方法。
在MATLAB 中,可以使用内置函数来进行数值积分,如trapz函数和quad函数。
也可以使用Simpson法则、复合辛普森法等方法实现数值积分。
3.2 数值微分数值微分是一种用数值方法计算导数的方法。
在MATLAB中,可以使用内置函数进行数值微分,如diff函数和gradient函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017/6/29
Application of Matlab Language
15
6.1.2 数据插值
(1)‘linear’:线性插值。默认的插值方式。它是把插值点靠近的两个 数据点用直线连接,然后在直线上选取对应插值点的数据。 (2)‘nearest’:最近点插值。根据已知插值点与已知数据点的远近程度 进行插值。插值点优先选择较近的数据点进行插值。 (3)‘cubic’:3次多项式插值。根据已知数据求出一个3次多项式,然后 根据该多项式进行插值。 (4)‘spline’:3次样条插值。指在每个分段内构造一个3次多项式,使 其满足插值条件外,在各节点处具有光滑的条件。 例:给出概率积分数据表如下,用不同的插值方法计算f(0.472)。
ans = 0.49556111971206
2017/6/29
数都是最好的插值方法。
Application of Matlab Language
17
6.1.3 曲线拟合
数值插值要求逼近函数在采样点与被逼近函数相等,但由于测量 误差,所获得的数据不一定准确,如果强求逼近显然不够合理。 曲线拟合不要求逼近函数通过各采样点,但要尽量的接近这些点,使 误差在某种意义上达到最小。 曲线拟合的实现: 在matlab中,用polyfit函数来求得最小二乘拟合多项式的系数,再用 polyval函数按所得的多项式计算所给出点上的函数近似值。 polyfit函数的调用格式为: [P,S] = polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样 点的误差向量S。其中X、Y是两个等长的向量,P是一个长度为m+1的 向量,P的元素是多项式系数。 polyval函数的功能是按多项式的系数计算x点多项式的值。
x
0.46
0.47
0.48
0.49
f(x)
0.484655 0.493754 0.502749 0.511668 5 2 8 3
2017/6/29
Application of Matlab Language
16
命令如下: x = 0.46:0.01:0.49; f = [0.4846555,0.4937542,0.5027498,0.5116683]; format long interp1(x,f,0.472) ans = 0.49555332000000 interp1(x,f,0.472,’nearest’) ans = 0.49375420000000 interp1(x,f,0.472,’spline’) ans = 其中,3次样条和3次多项式的插值结果优于 最近点插值方法和线性插值方法,但插值方法 0.49556073600000 的好坏依赖于被插值函数,没有一种对所有函 interp1(x,f,0.472,’cubic’)
• 该向量元素是该多项式的系数 • 且按降幂次序排列
如:多项式x4-12x3+25x+116由行向量: p=[1 -12 0 25 116]表示。
注意,必须包括具有零系数的项。
2017/6/29
Application of Matlab Language
20
6.1.4 多项式(polynomial)
2. 求矩阵的平均值和中值 求数据序列平均值的函数是mean,求数据序列中值的函数是 median。两个函数的调用格式为: mean(X):返回向量X的算术平均值。 median(X):返回向量X的中值。 mean(A):返回一个行向量,其第i个元素是A的第i列的算术 平均值。 median(A):返回一个行向量,其第i个元素是A的第i列的中 值。 mean(A,dim):当dim为1时,该函数等同于mean(A);当dim 为2时,返回一个列向量,其第i个元素是A的第i行的算术 平均值。 median(A,dim):当dim为1时,该函数等同于median(A);当 dim为2时,返回一个列向量,其第i个元素是A的第i行的 中值。
6.1 数据处理与多项式计算
6.1.1 数据统计与分析 1. 求矩阵最大元素和最小元素 MATLAB提供的求数据序列的最大值和最小值的函数分 别为max和min,两个函数的调用格式和操作过程类似。 (1)求向量的最大值和最小值 y=max(X):返回向量X的最大值存入y,如果X中包含 复数元素,则按模取最大值。
2017/6/29 Application of Matlab Language 14
6.1.2 数据插值
在工程测量和科学实验中,所得到的数据通常是离散的,要得到 这些离散点以外的其他点的数值,就需要根据已知的数据进行插值。 插值函数一般由线性函数、多项式、样条函数或这些函数的分段函 数充当。 一维数据插值:被插值函数有一个单变量。 采用的方法有:线性方法、最近方法、三次样条和三次插值。 在Matlab中实现这些插值的函数是interp1,其调用格式如下: Y1 = interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。 X,Y是两个等长的已知向量,分别描述采样点和样本值; X1是一个向量或标量,描述欲插值的点; Y1是一个与X1等长的插值结果。 method是插值方法,允许的取值为:
1 0.8 0.6 0.4 0.2 sin(x) fit 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7
2017/6/29
Application of Matlab Language
19
6.1.4 多项式(polynomial)
• 多项式的MATLAB表达
– 多项式由一个行向量表示
5.求标准方差 在MATLAB中,提供了计算数据序列的标准方差的函数std。 对于向量X,std(X)返回一个标准方差。对于矩阵A,std(A) 返回一个行向量,它的各个元素便是矩阵A各列或各行的标 准方差。std函数的一般调用格式为: Y=std(A,flag,dim) 其中dim取1或2。当dim=1时,求各列元素的标准方差;当 dim=2时,则求各行元素的标准方差。flag取0或1,当flag=0 时,按σ1所列公式计算标准方差,当flag=1时,按σ2所列公 式计算标准方差。缺省flag=0,dim=1。 例6.4 对二维矩阵x,从不同维方向求出其标准方差。
[y,I]=max(X):返回向量X的最大值存入y,最大值 的序号存入I,如果X中包含复数元素,则按模取 最大值。 求向量X的最小值的函数是min(X),用法和max(X) 完全相同。 例 求向量x的最大值。 命令如下:
x=[-43,72,9,16,23,47]; y=max(x) %求向量x中的最大值 [y,l]=max(x) %求向量x中的最大值及其该元素的位置
求解多项式的根?roots指令
• 举例:求解多项式x4-12x3+25x+116的根 >>p=[1 -12 0 25 116] p= 1 -12 0 25 116 >>r=roots(p) r= 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i MATLAB按惯例规定,多项式是行向量,根是列向量
(2)求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: max(A):返回一个行向量,向量的第i个元素是矩 阵A的第i列上的最大值。 [Y,U]=max(A):返回行向量Y和U,Y向量记录A 的每列的最大值,U向量记录每列最大值的行号。
max(A,[],dim):dim取1或2。dim取1时,该函数和 max(A)完全相同;dim取2时,该函数返回一个列 向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。
6.相关系数 MATLAB提供了corrcoef函数,可以求出数据的相关系 数矩阵。corrcoef函数的调用格式为: corrcoef(X):返回从矩阵X形成的一个相关系数矩阵。 此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每 列作为一个变量,然后求它们的相关系数。 corrcoef(X,Y):在这里,X,Y是向量,它们与 corrcoef([X,Y])的作用一样。
1 8 5 A 4 12 6 13 7 13
2017/6/29 Application of Matlab Language 13
命令如下: A = [1,-8,5;4,12,6;13,7,-13]; sort(A) ans = 1 -8 -13 4 7 5 13排列 ans = 5 1 -8 12 6 4 13 7 -13
2017/6/29
Application of Matlab Language
18
例:用一个三次多项式在区间[0,2π]内逼近函数sinx。 在给定区间内,均匀的选择20个采样点,并计算采样点的 函数值 然后利用3次多项式逼近。 命令如下: x = linspace(0,2*pi,20); y = sin(x); p = polyfit(x,y,3) y1 = polyval(p,x) plot(x,y,':o',x,y1,'-*') legend('sin(x)','fit')
例6.5 生成满足正态分布的10000×5随机矩阵,然 后求各列元素的均值和标准方差,再求这5列随机 数据的相关系数矩阵。 命令如下: X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)
7. 元素排序
Matlab中对向量X排序的函数是sort(X), 函数返回一个对X中的元 素按升序排列的新向量。 sort函数也可以对矩阵A的各列(或行)重新排序,其调用格式为: [Y,I] = sort(A,dim) dim=1,按列排序;dim=2,按行排序,Y是排序后的矩阵,I记录Y中 的元素在A中的位置。 例:对下列矩阵做各种排序。