第三讲数值计算与符号计算

更新时间:2023-07-21 11:33:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三讲 数值计算与符号计算主讲人:李秀滢 lixiuying@Matlab基础应用 1

一、数值计算 矩阵与数组

多项式运算 函数的微分(差分)和积分 快速傅立叶变换

Matlab基础应用

1.创建矩阵1.1直接输入矩阵 Matlab中的基本数据单元: 复数 矩阵

规则:(1)矩阵必须用[ ]括住其元素;

(2)矩阵元素间必须用逗号或空格分隔;(3)在[ ]内矩阵行与行之间必须用分号分隔; (4)元素可以是数值或表达式。3

Matlab基础应用

1.2 语句生成矩阵 线性等间距向量:from:step:to d=1:0.1:10

线性等分向量:linspace命令 a=linspace(1,10,5);

线性对数等分向量:logspace命令 b=logspace(0,2,10)

矩阵连接 c=[a b];Matlab基础应用 4

1.3 用函数创建矩阵 空阵[]——MATLAB允许输入空阵,当操作无结果 时,返回空阵;

rand eye ones

—— 产生均匀分布随机矩阵;—— 单位矩阵; ——全部元素都为1的矩阵;

zeros ——全部元素都为0的矩阵; magic ——产生魔方阵。Matlab基础应用 5

2. 矩阵元素的操作2.1 矩阵元素的引用(1)全下标表示方式:即a(i,j); (2)单下标表示方式:即a(s),按列排列,

s=(j-1)×m+i,矩阵a为m×n1 1 2 1 3 2 2 4 3 0 0

a(1,2) a(4)

3

5

6

9

Matlab基础应用

2.2 矩阵的赋值和删除2.2.1 矩阵赋值(1)全下标方式:a(i,j)=b (2)单下标方式:a(s)=b (3)全元素方式:a(:)=b (4)整行列方式:a(:,j)=b 或a(i,:)=b例1: >> >> >> a(1:2,1:3)=[1 1 1;1 1 1] b=[1 2 3;4 5 6] a(:)=b Matlab基础应用

2.2.2 矩阵删除(1)单个元素删除:a(i,j)=[]

(2)子矩阵删除:a(i:j,k:l)=[](3)所有元素删除:a=[]例2: >> a=[1 2 3;3 4 5;5 6 7]%删除一列 %删除一个元素,矩阵变为行向量

>> a(:,3)=[ ]

>> a(5:6)=[2 3]

>> a(1)=[ ]>> a=[ ]

例:a= 1

2 4

0 0

2.3 矩阵的反转函数名triu(X)

3

5

6

9

功能产生X矩阵的上三角矩阵, 其余元素补0 产生X矩阵的下三角矩阵, 其余元素补0

例子输入triu(a) 1 0 0 1 3 5 5 3 1 0 0 9 0 2 1

结果2 4 0 0 4 6 6 4 2 2 4 6 0 4 3 0 0 9 0 0 9 9 0 0 1 3 5 9 6 5

tril(X)

tril(a)

flipud(X)

使矩阵X沿水平轴上下翻转

flipud(a)

fliplr(X)

使矩阵X沿垂直轴左右翻转

fliplr(a)

rot90(X)

使矩阵X逆时针旋转900

rot90(a)

Matlab基础应用

3.矩阵运算3.1矩阵的代数运算 矩阵的代数操作:+,-,*,

\(左除),/(右除) ,.\

对应元素的操作:+,-,.*,./ 矩阵的代数乘方:^ 矩阵元素的乘方:.^

Matlab基础应用

3.1.1 矩阵乘除运算 规则:

(1)矩阵与矩阵:A矩阵的列数必须等于B矩阵的行数。(2)矩阵与标量:标量与矩阵所有元素相乘除。 矩阵除法运算表达式: (1)A \ B :左除

; (2)A / B :右除;一般:X=A\B是方程:A*X=B的解; A\B=A-1*B

Matlab基础应用

3.1.2 矩阵元素(数组)乘除(. ,./,.\)(1)两个都是矩阵必须有相同的行和列,并且是 两矩阵对应元素相乘除; (2)矩阵和标量相乘除,则是矩阵中每个元素和 标量相乘除; (3)./和.\运算中,是斜线上方为被除对象。

Matlab基础应用

3.2 矩阵的其它运算 inv(X)—— 求矩阵的逆阵;

det(X)—— 求方阵的行列式的值; rank(X)—— 求矩阵的秩; [v,d]=eig(X)——求矩阵的特征值和特征向量; diag(X)—— 产生矩阵对角阵; X ’ ——矩阵的转置阵;

[q,r]=qr(X)—— 将X分解为一个正交方阵q和一 个与X同阶的上三角矩阵r的乘积。Matlab基础应用 12

4.多项式运算4.1 多项式的表示MATLAB语言把多项式表达成一个行量,该向 量中的元素是按多项式降幂排列的。

f(x)=anxn+an-1xn-1+……+a0 用行向量 p=[an, an-1 ,…… a1, a0]表示。

Matlab基础应用

4.2 多项式求值 可用polyval函数,计算多项式在变量

为特定值的结果。例3:计算x=0:0.5:3时,p(x)=x3+21x2+20x值。解: >>p1=[1 21 20 0]; >>x=0:0.5:3; >>M=polyval(p1,x);>>M=[15.375 42 80.625 132 196.875 276]

Matlab基础应用

4.3 多项式求根 在MATLAB利用函数:roots

例2:p(x)=x3-6x2-72x-27Now Begin:

在MATLAB command window 中演示。

Matlab基础应用

4.4 多项式乘除运算4.4.1 多项式的乘法 语法:p=conv(p1,p2) 说明:p是多项式p1和p2的乘积多项式。

4.4.2 多项式的除法 语法:[q,r]=deconv(p1,p2)

说明:p1被p2除,商为多项式q,余数式为r。

Matlab基础应用

4.5 多项式微分与积分 多项式微分:由polyer函数实现语法:polyder(p) 说明:求多项式p的微分。

MATLAB中没有专门的多项式积分函数, 例: 可用[p./length(p):-1:1,k]方法实现积分,其>>p=[3 42 20]; 中k为常数。 >>s=length(p):-1:1s = 3 221

1

>>p1=[p./s,0]P1 = 1

%多项式积分,常数k=020 017

>>poly2str(p1,’x’)Matlab基础应用

ans = x^3 + 21 x^2 + 20 x

5 差分(微分)与积分函数名 功能 沿第n维求第m阶差分。差分是 求相邻行(列)之间的差,结果 会减少一行(列)(微分)

例子:a = 5.3000 5.1000 3.7000 1.5000输入

13.0000 11.8000 8.1000 7.7000例子结果 -0.2000 -1.4000 -2.2000 5.3000 5.1000 3.7000 1.5000

0.4000 -1.7000 0.6000 -4.5000

diff(X,m,n)

diff(a,1,1) %沿 第一维求一阶差分

-1.2000 -3.7000 -0.4000 18.3000 16.9000 11.8000 9.2000

-2.1000 2.3000 -5.1000 18.7000 15.2000 12.4000 4.7000 -3.1500

cumsum(X,n)

沿第n维求累计和(积分)

cumsum(a,2) %沿 列求累计和

trapz(X,y)

梯形法求积分近似于求元素和 ,把相邻两点数据的平均值乘 以步长表示面积。x为自变量, y为函数。

用梯形法沿第n维求函数y对自 变量x累计积分。

12.2000 30.2500 trapz(a)

cumtrapz(X,y, n)

cumtrapz(a)%用梯 形法沿列向积分

0 5.2000 9.6000 12.2000

0 12.4000 22.3500 30.2500

0 -0.6500 -1.2000 -3.150018

Matlab基础应用

6 快速傅立叶变换 fft:一维快速傅立叶变换。 语法:X=fft(x,N) 说明:x可是向量、矩阵和多维数组;N为输入变量x的序列 离散序列傅立叶变换定义为:长度,可省略,如果x的长度小于N,会自动补零;如 2 N j ( n 1)( k 1) x( n果x的长度大于N,会自动截断;当N取2的整数幂时, ) x( k )e N n 1,.... N 1 k 1 傅立叶变换的计算速度最快。通常取大于又最靠近x 长度的幂次。 离散序列傅立叶逆变换定义为:

2 j ( n 1)( k 1) 1 N x( k )ifft:一维快速傅立叶逆变换。 N 1 x( n)e N k 1,.... N n 1 语法: x=ifft(X,N)

Matlab基础应用

内容归纳项目矩阵

内容定义、生成、下标、赋值、修改、删除、算术运算(+,,*,/,\,^(与标量运算也一样))、其它运算

矩阵元素 算术运算( +,-,.*,./,.\,.^ )、其它函数(超越函数) (数组) 多项式 表示方法、求值(polyval)、求根(roots)、相乘(conv)、 相除(deconv)、微分(polyer)、积分

函数

微分/差分(diff)、积分(cumsum、trapz、cumtrapz)

信号处理 傅立叶变换(fft) 专用函数 傅立叶逆变换(ifft)20

Matlab基础应用

二、符号计算 符号表达式创建

符号运算 符号表达式的操作 符号方程求解 符号微积分 符号积分变换 符号函数的可视化Matlab基础应用 21

本文来源:https://www.bwwdw.com/article/ahym.html

Top