第 6次课第四章 matalab其它函数库
4.1数据分析函数库
4.1.1基本数据分析
clc
clear
close all
data=[154 49 83 67;158 99 81 75;155 100 68 86;145
63 75 96;145 63 75 96;141 55 65 75;
155 56 64 85;147 89 87 77;147 96 54 100;145 60
76 67]
D=max(data),S=sum(data),es=std(data),st=trapz(data)
Std(data)求各列标准差,是指将 N个元素与该列的平均值之差的平方和开方即

N
d at ame and at ad at as t d 2))(()(
trapz(Y):是将 Y中的各个元素相加,但它是将相邻两点的数据的平均值作为数据点,因此若 Y有 5个元素,则只有三个元素相加,这一点和 sum( Y)不同例如
Y1=[1,2,3,4];Y2=trapz(Y1)
答案,Y2 = 7.5000
trapz(x,y)是利用梯形法求积分。
例如,求
0 )s in ( dxx
clc
clear all
close all
X=0:pi/100:pi;
Y=sin(X);
Z=trapz(X,Y)
Z1=pi/100*trapz(Y) 结果 Z=Z1
4.1.2 用于场论的数据分析函数
1)gradient函数,用于求二维场和三维场的梯度。若 F(x,y),
jyFixF F
2)del2 是二维场和三维场的拉普拉斯算子
L = del2(U)
.,,)(
2
1
2 2
2
2
2
2
22

zd
ud
yd
ud
xd
ud
NN
ul
N是自变量的个数
cross 为两个向量的矢量积。
a× b=(aybz-azby)i+ (azbx-axbz)j+ (axby-aybx)k
Dot 为两个向量的数量级。
例,设 a=[1,2,3]; b=[2,3,8]
c=cross(a,b)=??
d=dot(a,b)=??
4.1.3 用于随机数据分析的函数
产生随机数的命令
1,rand(m,n) 产生在 0与 1之间均匀分布的 m行 n
列随机数矩阵,其均值为 0.5。
2,randn(m,n) 产生正态分布的 m行 n列随机数矩阵,其均值为 0。
练习:
x=rand(1,1000); hist(x)
figure
y=randn(1,1000);hist(y)
hist(x)的用法见书 p60
clear all
close all
tic
x=rand(1,10000);subplot(2,2,1),hist(x)
title('x,10000')
y=randn(1,10000); subplot(2,2,2),hist(y)
title('y,10000')
x=rand(1,100000); subplot(2,2,3),hist(x)
title('x,100000')
y=randn(1,100000); subplot(2,2,4),hist(y)
title('y,100000')
toc
例子
4.1.4 用于傅立叶分析的函数
1、卷积,conv(x,y),结果为 x,y的卷积。
若 x是输入信号,y是线性系统的单位冲激函数,则 x,y的卷积就是系统的输出信号 (零状态响应 )。
2,filter(b,a,x) 是根据输入信号 x和线性系统的传输系数,求输出信号。 a为分母多项式的系数向量,b为分子多项式的系数向量。
3,X=fft(x,N)
求出时域信号 x的离散傅立叶变换 X。 N
为规定的点数,其默认值为 x的长度。
当 N取 2的整数幂时变换的数度最快。
通常 N取大于又最靠近 x的幂次,即
N=2^nextpow2(length(x)),若 x的长度为 12,
nextpow2(12)= 4,N= 2^4=16;
问 length(x) =13,15,17;
nextpow2(length(x))=
fft函数
格式,X=fft(x,N)
一般情况下,fft求出的函数为复数,可用 abs和
angle分别求出其幅度和相位。
clc
Clear; close all;
t=0:0.001:3;
u=sin(300*t)+2*cos(200*t);
U=fft(u);
plot(abs(U));
axis([0,300,0,2600])
figure
plot(angle(U))
4、傅立叶逆变换函数
x=ifft(X)
4.2.1线性方程组的系数矩阵
线性方程组可以用矩阵法求解,
AX= B
A为系数矩阵。
det( A)
rank(A)
trace(A)
cond(A)
矩阵 A 的秩
A=(aij)m× n的不为零的子式的最大阶数称为矩阵 A 的秩,记作 rA,或 rankA。
特别规定零矩阵的秩为零。
显然 rA≤min(m,n) 易得:
若 A中至少有一个 r阶子式不等于零,且在 r<min(m,n)时,A中所有的 r+1阶子式全为零,则 A的秩为 r。
奇异值的定义:
对于任一个复 (实 )矩阵 A(m*n),设 A’为 A的共轭转置矩阵,即 A’是 n*m阶,则 A’*A
( n*n阶)的特征值的非负平方根为 A 的奇异值,也就是 A共有 n个奇异值,且全部 >=0,
练习 1
clc
clear
close all
a=[1 2 -1 3 ;2 -2 6 4 ;1 -1 3 2 ;0 0 0 0 ]
hlsa=det(a)
zhia=rank(a)
d=inv(a)
t=trace(a)
c=cond(a)
练习 2
clc
clear
close all
a=[ 2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4 ]
hlsa=det(a)
zhia=rank(a)
d=inv(a)
t=trace(a)
c=cond(a)
4.2.2 矩阵的分解
矩阵可以分解成几个具有特殊构造性质的矩阵的乘积。
1、矩阵的三角分解( lu分解)
[l,u]=lu(a)
把任意方阵分解为一个准下三角阵和一个上三角方阵的乘积。
2、矩阵的正交分解( qr分解)
[q,r]=qr(a)
把任意 n× m阶的矩阵 a分解为正交方阵 q,r为与 a有同样阶数的上三角矩阵。
3、奇异值分解( svd分解)
格式,[u,s,v]=svd(b)
分解成三个矩阵,其中 s对角线上的元素就是矩阵 a的奇异值。
矩阵的条件数 等于最大奇异值和最小奇异值之比。
练习
clc
clear
close all
b=[0.2190 0.6793 0.5194 0.0535
0.0077;0.0470 0.9347 0.8310 0.5297 0.3834;
0.6789 0.3835 0.0346 0.6711 0.0688]
[q,r]=qr(b)
[u,s,v]=svd(b)
4.2.3 矩阵的特征值分析
格式,[e,r]=eig(a)
e为矩阵特征向量; r为矩阵的特征根。
特征根为特征方程的根。
另一方法,用 matlab的 poly函数可以求出矩阵的特征方程系数。
利用 roots命令可以求出其特征根。
练习
clc
clear
close all
a=[ 2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4 ]
[e,r]=eig(a)
p=poly(a)
r=roots(p)
作业
4.10
4.11