当前位置:文档之家› 第三讲数值计算与符号计算

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

例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]
(2)符号运算可以得出完全的封闭解或任意精 度的数值解。
(3)符号运算的时间较长,而数值运算速度快。
Matlab基础应用
23
1. 符号表达式的建立
(1)使用sym命令创建


符号变量:sym(‘arg’,’参数’)
符号表达式:sym(‘表达式’)
(2)使用syms命令创建


符号变量:syms arg1 arg2 … 参数
>>roots(f) >> syms a b c x; >> f=a*x^2+b*x+c; >> solve(f)
※ 数值运算中必须先对变量赋值 ※ 符号运算无须事先对变量赋值,运算 结果以标准的符号形式表达
Matlab基础应用
22
符号运算与数值运算的区别
(1)每一次数值运算有一定的截断误差,重复 的多次数值运算就可能会造成很大的积累 误差。
可用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基础应用 25
2.符号运算
2.1 符号运算中的运算符
(1)基本运算符
符号矩阵:‚+”,‚-”,‚*‛,‚\”,‚/”,‚^”
‚ ’ ” 符号数组(矩阵元素):‚.*”,‚./”,‚.\‛, ‚.^” (2)关系运算符 运算符‚==”,‚~=”。
Matlab基础应用 26
2.2 符号运算中的函数运算
矩阵元素 算术运算( +,-,.*,./,.\,.^ )、其它函数(超越函数) (数组) 多项式 表示方法、求值(polyval)、求根(roots)、相乘(conv)、 相除(deconv)、微分(polyer)、积分
函数
微分/差分(diff)、积分(cumsum、trapz、cumtrapz)
信号处理 傅立叶变换(fft) 专用函数 傅立叶逆变换(ifft)

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基础应用
19
内容归纳
项目
矩阵
内容
定义、生成、下标、赋值、修改、删除、算术运算(+,,*,/,\,^(与标量运算也一样))、其它运算
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 长度的幂次。 离散序列傅立叶逆变换定义为:
Matlab基础应用 12
4.多项式运算
4.1 多项式的表示
MATLAB语言把多项式表达成一个行量,该向 量中的元素是按多项式降幂排列的。
f(x)=anxn+an-1xn-1+……+a0
用行向量 p=[an, an-1 ,…… a1, a0]表示。
Matlab基础应用
13
4.2 多项式求值
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
使矩阵X沿垂直轴左右翻转
fliplr(a)
rot90(X)
使矩阵X逆时针旋转900
rot90(a)
Matlab基础应用
8
3.矩阵运算
3.1矩阵的代数运算
矩阵的代数操作:+,-,*,
\(左除),/(右除) ,.\
对应元素的操作:+,-,.*,./ 矩阵的代数乘方:^ 矩阵元素的乘方:.^
Matlab基础应用
符号表达式:利用上面定义的符号变量,直接定义。 例:>>syms a b c x
>>f=a*x^2+b*x+c
注意: (1)由sym命令创建符号表达式或者符号方程时,必须用 单引号引起来MATLAB才能识别。 (2)符号变量和符号表达式在使用前必须说明。
Matlab基础应用 24
例: >>sym(‘ f ’,’real’) >>syms a x 或sym(‘a’,’x’) >> f2=a*sin(x) >> whos Name Size Bytes Class a 1x1 126 sym object f2 1x1 146 sym object x 1x1 126 sym object
Matlab基础应用
14
4.3 多项式求根
在MATLAB利用函数:roots
例2:p(x)=x3-6x2-72x-27
Now Begin:
在MATLAB command window 中演示。
Matlab基础应用
15
4.4 多项式乘除运算
4.4.1 多项式的乘法
语法:p=conv(p1,p2)
说明:p是多项式p1和p2的乘积多项式。
4.4.2 多项式的除法
语法:[q,r]=deconv(p1,p2)
Hale Waihona Puke 说明:p1被p2除,商为多项式q,余数式为r。
Matlab基础应用
16
4.5 多项式微分与积分
多项式微分:由polyer函数实现
语法:polyder(p) 说明:求多项式p的微分。
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)
-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累计积分。
—— 产生均匀分布随机矩阵;
—— 单位矩阵; ——全部元素都为1的矩阵;
zeros ——全部元素都为0的矩阵; magic ——产生魔方阵。
Matlab基础应用 5
2. 矩阵元素的操作
2.1 矩阵元素的引用
(1)全下标表示方式:即a(i,j); (2)单下标表示方式:即a(s),按列排列,
20
Matlab基础应用
二、符号计算
符号表达式创建
符号运算
符号表达式的操作 符号方程求解 符号微积分 符号积分变换 符号函数的可视化
Matlab基础应用 21
内容导入
求解函数f= ax2+bx+c的根
如果a=1,b=2,c=1,则: 如果a,b,c不给出具 体值怎样求解呢? >>f = [1 2 1];
a=linspace(1,10,5);
线性对数等分向量:logspace命令
b=logspace(0,2,10)
矩阵连接
c=[a b];
Matlab基础应用 4
1.3 用函数创建矩阵
空阵[]——MATLAB允许输入空阵,当操作无结果 时,返回空阵;
rand
eye ones
s=(j-1)×m+i,矩阵a为m×n
1 1 2 1 3 2 2 4 3 0 0
a(1,2) a(4)
3
5
6
9
Matlab基础应用
6
2.2 矩阵的赋值和删除
2.2.1 矩阵赋值
(1)全下标方式:a(i,j)=b (2)单下标方式:a(s)=b (3)全元素方式:a(:)=b (4)整行列方式:a(:,j)=b 或a(i,:)=b
MATLAB中没有专门的多项式积分函数, 例: 可用[p./length(p):-1:1,k]方法实现积分,其
>>p=[3 42 20]; 中k为常数。 >>s=length(p):-1:1
s = 3 2
21
1
相关主题