Matlab关于数值计算的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab关于数值计算的实现

摘要:数值计算(numerical computation computation),主要研究更好的利用计算机更好的进行数值计算,解决各种数学问题。数值分析包括离散傅里叶变换,考虑截断误差,计算误差,函数的敛散性与稳定性等。在数学方面,数值计算的主要研究数值微分与积分,数据的处理与多项式计算,最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解等。同时,数值计算在物理,化学,经济等方面也有研究,本文暂且不表。M atlab软件历经二十多年来的发展,已成为风靡世界的数学三大软件(matlb,Mathematica l,Maple)之一,在数学类科技应用软件中在数值计算方面首屈一指。Matlab以矩阵为数据操作的基本单位,使得矩阵运算十分便捷快速,同时Matlab还提供了海量的计算函数,而且使用可靠地算法进行计算,能使用户在繁复的数学运算中解脱,Matlab还具有方便且完善的图形处理功能,方便绘制二维和三维图形并修饰。

目录

1.数值分析(离散傅里叶变换,考虑截断误差,计算误差,函数

的敛散性与稳定性)

2.数值计算(数值微分与积分,数据的处理与多项式计算,

最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解)

3.图形处理功能(方便绘制二维和三维图形并修饰)

4.总结

1.数据统计与分析

Matlab 可以进行求矩阵的最大最小元素,平均值与中值,关于矩阵元素的求和与求积,累加和与累乘积,标准方程,相关系数,元素排序。现在以求标准方差举例说明Matlab 的实现。

在Matlab 中,实现标准方差计算的函数为std 。对于向量(Y ),std (Y )实现返回一个标准方差,而对于矩阵(A ),std (A )返回一个行向量,该行向量的每个元素对应着矩阵A 各行或各列的标准方差。一般调用std 函数的格式为std (A ,flag ,dim )

Dim 取1或者2分别对应求各列或各行的标准方差,flag 取1时,按照标准方差的计算公式

∑-=-=N

i x x S i N 1

2

1)(11来计算。若flag 取2,则用公式

∑-==N

i x x S i N

1

2

2)

(1

进行计算。默认的flag 取值为0,dim 取值为1。课本page143

2. 离散傅里叶变换

离散傅里叶变换广泛应用于信号的分析,光谱和声谱分析、全息技术等各个领域。但直接计算dft 的运算量与变化的长度N 的平方成正比,当N 较大时,计算量太大。随着计算机技术的迅速发展,在计算机上进行离散傅里叶变换计算成为可能。特别是快速傅里叶变换算法的出现,为傅里叶变换的应创造了条件。

(1):傅里叶变换算法的简述。

傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分. f(t)是t 的周期函数,如果t 满足狄里赫莱条件:在一个以2T

为周期内f(X)连续或只有有限个第一类间断点,附f (x )单调或可划分成有限个单调区间,则F (x )以2T 为周期的傅里叶级数收敛,和函数S (x )也是以2T 为周期的周期函数,且在这些间断点上,函数是有限值;在一个周期内具有有限个极值点;绝对可积。则有下图①式成立。称为积分运算f(t)的傅立叶变换,

②式的积分运算叫做F(ω)的傅立叶逆变换。F(ω)叫做f(t)的像函数,f(t)叫做

F(ω)的像原函数。F(ω)是f(t)的像。f(t)是F(ω)原像。 ①傅立叶变换

②傅立叶逆变换

(2)离散傅里叶变化的实现

Matlab提供了对向量或对矩阵进行离散傅里叶变换的函数.

1. g(x):返回向量的离散傅里叶变换.设晓得长度为n,若为2的幂次,则为以2为基数快速

傅里叶变换,否则为运算速度很慢的非2次幂次的算法。对于矩阵x,个g(x)应用于矩阵每一列。

2.g(x,n)计算n点离散傅里叶变化。限定向量的长度为n,若x的长度小于n,则不足

部分不上0;若大于n,则删去超出的那些元素。对于矩阵X,它同样应用于矩阵的每一列,只是限定了向量长度为n

3.g(x,[],dim):这是对于矩阵而言的函数调用格式,,前者的功能与g(x)

基本相同,而后者则与g(x,n)基本相同。只是当参数dim=1时,改函数作用于x的每一列;当dim=2时,则作用x的每一行。

值得一提的是,当一只给出的样本数n0是2的幂次时,可以取一个n使他大于n0且是2的幂次,然后利用函数格式g(x,n)进行快速的傅里叶变换。是七速度大大的提升。

例如:

给定函数:

g(t)=12sin(2pi*10t+pi\4)+5cos(2pi*40t)

取N=100,试从x为0-1采样,绘制相应的振幅-频率图。

程序如下:

N=100 采样点数

T=1; % 采样时间终点

t=linspace(0,T,N);

% 给出N个采样时间

ti(I=1:N)

x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t);

% 求各采样点样本值x

dt=t(2)-t(1);

% 采样周期f=1/dt;

% 采样频率(Hz)

X=fft(x); % 计算x的快速傅立叶变换X

F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1)

f=f*(0:N/2)/N; % 使频率轴f从零开始

plot(f,abs(F),'-*') % 绘制振幅-频率图

xlabel('Frequency');

ylabel('|F(k)|');

相关文档
最新文档