当前位置:文档之家› 数值分析实验报告Matlab仿真

数值分析实验报告Matlab仿真

数值分析实验报告Matlab仿真
数值分析实验报告Matlab仿真

数值分析实验报告

学院:电气工程与自动化学院

专业:控制理论与控制工程

姓名:李亚

学号:6120140162

2014 年 12 月24日

实验一 函数插值方法

一、目的和意义

1、 学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;

2、 明确插值多项式和分段插值多项式各自的优缺点;

3、 熟悉插值方法的程序编制;

4、 如果绘出插值函数的曲线,观察其光滑性。

二、实验原理

1、 Lagrange 插值公式

00,()n n

i n k k i i k k i x x L x y x x ==≠??

-= ?-??

∑∏编写出插值多项式程序;

2、 给出插值多项式或分段三次插值多项式的表达式;

三、实验要求

对于给定的一元函数)(x f y =的n+1个节点值(),0,1,

,j j y f x j n ==。

试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下:

(1

求五次Lagrange 多项式5L ()x ,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈)

试构造Lagrange 多项式6,和分段三次插值多项式,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈)

四、实验过程

1.进入matlab开发环境;

2.根据实验内容和要求编写程序,程序如下所示,程序通过运用function 函数编写,生成.m文件。调用时只需要在命令窗口调用y=Lagrange(A,input)就可以实现任意次数拉格朗日插值法求解。

function y=Lagrange(A,input)

[a,b]=size(A);

x=input;

y=0;

for j=1:a

Mj=1;

Nj=1;

for k=1:a

if(k==j)

continue;

end

Mj=Mj*(x-A(k,1));

Nj=Nj*(A(j,1)-A(k,1));

end

y=y+A(j,2)*Mj/Nj;

end

3.调试程序并运行程序;

调用拉格朗日脚本文件对以上两个表格数据求解,表格一对应MATLAB向量A;表格二对应向量I。在命令窗口调用y=Lagrange(A,input),求解如下面截图。

图1 表一数据的解

图2 表二数据的解

4.实验总结

通过对插值法算法编程,加深了对插值方法的理解,熟悉了MATLAB编写脚本函数。通过计算机求解,能更加方便快捷求解。

实验二 函数逼近与曲线拟合

一、目的和意义

1、掌握曲线拟合的最小二乘法;

2、最小二乘法亦可用于解超定线代数方程组;

3、探索拟合函数的选择与拟合精度间的关系。

二、实验原理

对于给定的测量数据(x i ,f i )(i=1,2,…,n ),设函数分布为

∑==m

j j j x a x y 0

)()(?

特别的,取)(x j ?为多项式

j j x x =)(? (j=0, 1,…,m )

则根据最小二乘法原理,可以构造泛函

∑∑==-=n i m

j i j j i m x a f a a a H 1

10))((),,,(?

0=??k

a H

(k=0, 1,…,m ) 则可以得到法方程

????

???????

?=????????????????????????),(),(),(),(),(),(),(),(),(),(),(),(1010101111000100m m m m m m m m f f f a a a ?????????????????????

求该解方程组,则可以得到解m a a a ,,,10 ,因此可得到数据的最小二乘解

∑=≈m

j j j x a x f 0

)()(?

三、实验要求

1、用最小二乘法进行曲线拟合;

2、近似解析表达式为23123()t a t a t a t ?=++;

3、打印出拟合函数()t ?,并打印出()j t ?与()j y t 的误差,1,2,,12j =;

4、另外选取一个近似表达式,尝试拟合效果的比较;

5、绘制出曲线拟合图。

四、实验步骤:

1.进入matlab 开发环境;

2.根据实验内容和要求编写程序如下;代码一公式S(x)=a1*t+a2*t^2+a3*t^3;代码二公式S(x)=a2*t^2+a3*t^3+a4*t^4.

代码一:

function error=mintwomultiply(A) %S(x)=a1*t+a2*t^2+a3*t^3 [a,b]=size(A); M=zeros(3); N=zeros(3,1); error=0; for i=1:a

M(1,1)=M(1,1)+A(i,1)*A(i,1); M(1,2)=M(1,2)+A(i,1)*A(i,1)^2; M(2,1)=M(1,2);

M(1,3)=M(1,3)+A(i,1)*A(i,1)^3; M(3,1)=M(1,3);

M(2,2)=M(2,2)+A(i,1)^2*A(i,1)^2; M(2,3)=M(2,3)+A(i,1)^2*A(i,1)^3; M(3,2)=M(2,3);

M(3,3)=M(3,3)+A(i,1)^3*A(i,1)^3; N(1,1)=N(1,1)+A(i,1)*A(i,2); N(2,1)=N(2,1)+A(i,1)^2*A(i,2); N(3,1)=N(3,1)+A(i,1)^3*A(i,2); end

%[a1,a2,a3]=solve(M,N)

I=M\N;

for i=1:a

A(i,3)=I(1,1)*A(i,1)+I(2,1)*A(i,1)^2+I(3,1)*A(i,1)^3;

error=error+(A(i,3)-A(i,2))^2;

end

hold on;

plot(A(:,1),A(:,3),'r','LineWidth',2);

plot(A(:,1),A(:,2),'b','LineWidth',2);

legend('原始图像',拟合图像',2);

hold off;

代码二:

function error=mintwomultiply2(A)

%S(x)=a2*t^2+a3*t^3+a4*t^4

[a,b]=size(A);

M=zeros(3);

N=zeros(3,1);

error=0;

for i=1:a

M(1,1)=M(1,1)+A(i,1)^2*A(i,1)^2;

M(1,2)=M(1,2)+A(i,1)^2*A(i,1)^3;

M(2,1)=M(1,2);

M(1,3)=M(1,3)+A(i,1)^2*A(i,1)^4;

M(3,1)=M(1,3);

M(2,2)=M(2,2)+A(i,1)^3*A(i,1)^3;

M(2,3)=M(2,3)+A(i,1)^3*A(i,1)^4;

M(3,2)=M(2,3);

M(3,3)=M(3,3)+A(i,1)^4*A(i,1)^4;

N(1,1)=N(1,1)+A(i,1)^2*A(i,2);

N(2,1)=N(2,1)+A(i,1)^3*A(i,2);

N(3,1)=N(3,1)+A(i,1)^4*A(i,2);

end

%[a1,a2,a3]=solve(M,N)

I=M\N;

for i=1:a

A(i,3)=I(1,1)*A(i,1)^2+I(2,1)*A(i,1)^3+I(3,1)*A(i,1)^4 error=error+(A(i,3)-A(i,2))^2;

end

hold on;

plot(A(:,1),A(:,3),'r','LineWidth',2);

plot(A(:,1),A(:,2),'b','LineWidth',2);

legend('原始图像',拟合图像',2);

hold off;

3.调试程序并运行程序;

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t 的拟合曲线。

根据以上数据调用代码一和代码二,结果如下图,返回的结果为error为误差,拟合图像蓝的为原始图像,红的为拟合图像,具体图像见下图:

图1 公式一误差

图2 公式一拟合图

图3 公式二误差

图4 公式二拟合图

4.实验总结

从不同公式产生的误差来看,公式一明显误差小;从产生的拟合图像来看公式一更稳定,更平稳。由此可得,公式的选取对结果的影响很大。

实验三 线方程组的直接解法

一、目的和意义

1、通过该课题的实验,体会模块化结构程序设计方法的优点;

2、运用所学的计算方法,解决各类线性方程组的直接算法;

3、提高分析和解决问题的能力,做到学以致用;

4、学习Gauss 消去法的原理;

5、了解列主元的意义;

6、确定什么时候系数阵要选主元。

二 实验数学原理:

由于一般线性方程在使用Gauss 消去法求解时,从求解的过程中可以看到,

若)

1(-k kk a =0,则必须进行行交换,才能使消去过程进行下去。有的时候即使≠-)1(k kk a 0,但是其绝对值非常小,由于机器舍入误差的影响,消去过程也会出现

不稳定得现象,导致结果不正确。因此有必要进行列主元技术,以最大可能的消除这种现象。这一技术要寻找行r ,使得

)

1()1(max ||->-=k ik k

i k rk a a

并将第r 行和第k 行的元素进行交换,以使得当前的)

1(-k kk a 的数值比0要大的多。

这种列主元的消去法的主要步骤如下: 1. 消元过程

对k =1,2,…,n -1,进行如下步骤。 1) 选主元,记

ik k

i rk a a >=max ||

若||rk a 很小,这说明方程的系数矩阵严重病态,给出警告,提示结果可能不对。

2) 交换增广阵A 的r ,k 两行的元素。

kj rj a a ? (j=k,…,n +1)

3) 计算消元

kk kj ik ij ij a a a a a /-= (i=k+1,…,n ; j =k +1,……,n +1)

2. 回代过程

对k= n, n-1,…,1,进行如下计算

)

/(1

1,∑-=+-

=n

k j kk j kj

n k k a x a

a x

至此,完成了整个方程组的求解。

三、实验要求

1、对下述方程组分别利用Gauss 顺序消去法与Gauss 列主元消去法;

2、应用结构程序设计编出通用程序;

3、比较计算结果,分析数值解误差的原因;

4、设线性方程组如下

1234567891042312100

08653

6501004221

3

21031021513119442616733238685

717263502134253011610119173421224627139

2

0124001

8

3248

631x x x x x x x x x x --??????--??

????---??

?---??????---??

?--??????--??

?---????-????-----???5123234613381921?????????

???

???

??????

=?????????

???

????????

????

????-???

方程的解:(1,1,0,1,2,0,3,1,1,2)T

x *

=--

四、实验要求

1.进入matlab 开发环境;

2.根据实验内容和要求编写程序;代码分为两个,Gauss 顺序消去法与Gauss 列主元消去法;

代码一:Gauss 顺序消去法

function x=orderGauss(A,B) [m,n]=size(A); k=rank(A); if m==n&&m==k for i=1:n-1

for j=i+1:n

B(j,:)=B(j,1)-A(j,i)*B(i,1)/A(i,i);

A(j,:)=A(j,:)-A(j,i)*A(i,:)/A(i,i);

end

end

x(n,1)=B(n,1)/A(n,n);

for i=n-1:-1:1

sum=0;

for j=i+1:n

sum=sum+A(i,j)*x(j,1);

end

x(i,1)=(B(i,1)-sum)/A(i,i);

end

end

代码二:Gauss列主元消去法

此代码分为两部分,即两个功能函数。[rows,columns,temp]=findmax(A)

和x=Gauss(A,B)。前面函数寻找向量中的最大值,返回所在的行,列,具体值。

后面再findmax基础进行列主元迭代,代码如下:

第一部分:寻找向量,矩阵最大值

function [rows,columns,temp]=findmax(A)

[m n]=size(A);

if m~=1&&n==1

rows=1;

columns=1;

temp=A(1,1);

for i=2:m

if abs(A(i,1))>abs(temp)

temp=A(i,1);

rows=i;

end

end

elseif m==1&&n~=1

rows=1;

columns=1;

temp=A(1,1);

for i=2:n

if abs(A(1,i))>abs(temp)

temp=A(1,i);

columns=i;

end

end

else

rows=1;

columns=1;

temp=A(1,1);

for i=1:m

for j=1:n

if abs(A(i,j))>abs(temp) temp=A(i,j);

rows=i;

columns=j;

end

end

end

end

第二部分:高斯消元法求解

function x=Gauss(A,B)

[m,n]=size(A);

k=rank(A);

if m==n&&m==k

for i=1:n-1

[a,~,c]=findmax(A(i:m,i));

a=a+i-1;

if c==0

continue;

end

if a~=i

temp=A(i,:);

A(i,:)=A(a,:);

A(a,:)=temp;

temp1=B(i,1);

B(i,1)=B(a,1);

B(a,1)=temp1;

end

for j=i+1:n

B(j,:)=B(j,1)-A(j,i)*B(i,1)/c;

A(j,:)=A(j,:)-A(j,i)*A(i,:)/c;

end

end

x(n,1)=B(n,1)/A(n,n);

for i=n-1:-1:1

sum=0;

for j=i+1:n

sum=sum+A(i,j)*x(j,1);

end

x(i,1)=(B(i,1)-sum)/A(i,i);

end

end

3.调试程序并运行程序;

用Gauss顺序消去法与Gauss列主元消去法求解方程组的解,结果如下图:

图1 Gauss顺序消去法的解图2 Gauss列主元消去法的解

4.实验总结

对比试验结果,两种方法的解和方程的解都一直。这是由于计算机有足够的精度,如果没有足够的精度,误差就容易被放大。产生不正确的结果。列主元消去法可以克服这种缺陷,求出相对精确的解。

实验四 解线性方程组的迭代法

一、目的和意义

1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;

2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;

3、体会上机计算时,终止步骤(1)k k x x ε+∞

-<或k >(给予的迭代次数),对

迭代法敛散性的意义;

4、体会初始解0x ,松弛因子的选取,对计算结果的影响。

二、实验原理

设线性方程组

b Ax = (1)

的系数矩阵A 可逆且主对角元素nn a ,...,a ,a 2211均不为零,令

()nn a ,...,a ,a diag D 2211=

并将A 分解成

()D D A A +-= (2) 从而(1)可写成

()b x A D Dx +-= 令

11f x B x +=

其中b D f ,A D I B 1

111

--=-=. (3) 以1B 为迭代矩阵的迭代法(公式)

()()111f x B x k k +=+ (4)

称为雅可比(Jacobi)迭代法(公式),用向量的分量来表示,(4)为

?

??

[]

,...,,k ,

n ,...,i x a b

a x

n

i

j j )

k (j j i i

ii

)k (i

21021111==∑-=≠=+ (5)

其中

()()()()

()T

n x ,...x ,x x 002010=为初始向量. 三、要求

1、体会迭代法求解线性方程组,并能与消去法做以比较;

四、实验过程

1.进入matlab开发环境

2.根据实验内容和要求编写程序

此代码分为两部分,即两个功能函数。y=Jacobicondition(A)和X=Jacobi(A,B,X,input)。前面函数为判断条件,判断矩阵A是否可以进行雅克比迭代。后面X=Jacobi(A,B,X,input)进行迭代求解,具体代码如下:代码一:

function y=Jacobicondition(A)

[a]=size(A);

k=rank(A);

D=A;

L=A;

U=A;

for i=1:a

for j=1:k

if i~=j

D(i,j)=0;

end

if i>j

L(i,j)=-L(i,j);

else

L(i,j)=0;

end

if i

U(i,j)=-U(i,j);

else

U(i,j)=0;

end

end

end

J=D\(L+U);

[m n]=eig(J);

for i=1:a

if n(i,i)>=1;

y=1;

break;

else

y=0;

end

end

代码二:

function X=Jacobi(A,B,X,input)

y=Jacobicondition(A);

[a b]=size(A);

k=rank(A);

temp=zeros(a,input+1);

temp(:,1)=X(:,1)+temp(:,1);

if a==b&&a==k&&y==0

for i=1:input

for j=1:a

sum=0;

for m=1:a

if j==m

continue;

end

sum=sum+A(j,m)*temp(m,i);

end

temp(j,i+1)=(B(j,1)-sum)/A(j,j);

end

end

X=temp(:,input+1);

else

disp('不满足雅克比条件');

end

3.调试程序并运行程序

图1 方程组的系数矩阵

图2 迭代次数为5,10,30,50的解

数值分析MATLAB上机实验

数值分析实习报告 姓名:gestepoA 学号:201******* 班级:***班

序言 随着计算机技术的迅速发展,数值分析在工程技术领域中的应用越来越广泛,并且成为数学与计算机之间的桥梁。要解决工程问题,往往需要处理很多数学模型,不仅要研究各种数学问题的数值解法,同时也要分析所用的数值解法在理论上的合理性,如解法所产生的误差能否满足精度要求:解法是否稳定、是否收敛及熟练的速度等。而且还能减少大量的人工计算。 由于工程实际中所遇到的数学模型求解过程迭代次数很多,计算量很大,所以需要借助如MATLAB,C++,VB,JAVA的辅助软件来解决,得到一个满足误差限的解。本文所计算题目,均采用MATLAB进行编程,MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来MATLAB最突出的特点就是简洁,它用更直观的、符合人们思维习惯的代码。它具有以下优点: 1友好的工作平台和编程环境。MATLAB界面精致,人机交互性强,操作简单。 2简单易用的程序语言。MATLAB是一个高级的矩阵/阵列语言,包含控制语言、函数、数据结构,具有输入、输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编好一个较大的复杂的应用程序(M 文件)后再一起运行。 3强大的科学计算机数据处理能力。包含大量计算算法的集合,拥有600多个工程中要用到的数学运算函数。 4出色的图像处理功能,可以方便地输出二维图像,便于我们绘制函数图像。

目录 1 第一题 (4) 1.1 实验目的 (4) 1.2 实验原理和方法 (4) 1.3 实验结果 (5) 1.3.1 最佳平方逼近法 (5) 1.3.2 拉格朗日插值法 (7) 1.3.3 对比 (8) 2 第二题 (9) 2.1实验目的 (9) 2.2 实验原理和方法 (10) 2.3 实验结果 (10) 2.3.1 第一问 (10) 2.3.2 第二问 (11) 2.3.3 第三问 (11) 3 第三题 (12) 3.1实验目的 (12) 3.2 实验原理和方法 (12) 3.3 实验结果 (12) 4 MATLAB程序 (14)

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

《MATLAB与数值分析》第一次上机实验报告

电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建

一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下:

MATLAB仿真实验报告

MATLAB 仿真实验报告 课题名称:MATLAB 仿真——图像处理 学院:机电与信息工程学院 专业:电子信息科学与技术 年级班级:2012级电子二班 一、实验目的 1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。 2、掌握对多维图像处理的相关技能,理解多维图像的相关性质 3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。 4、熟练掌握部分绘图函数的应用,能够处理多维图像。 二、实验条件

MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找 三、实验内容 1、nddemo.m函数文件的相关介绍 Manipulating Multidimensional Arrays MATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays. Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents : ●Creating multi-dimensional arrays 创建多维数组 ●Finding the dimensions寻找尺寸 ●Accessing elements 访问元素 ●Manipulating multi-dimensional arrays操纵多维数组 ●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩 阵 (1)、Creating multi-dimensional arrays Multidimensional arrays in MATLAB are created the same way as two-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension. The CAT function is a useful tool for building multidimensional arrays. B = cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套). (2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices. (3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标). (4)、Manipulating multi-dimensional arrays

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

数值分析的matlab实现

第2章牛顿插值法实现 参考文献:[1]岑宝俊. 牛顿插值法在凸轮曲线修正设计中的应用[J]. 机械工程师,2009,10:54-55. 求牛顿插值多项式和差商的MA TLAB 主程序: function[A,C,L,wcgs,Cw]=newpoly(X,Y) n=length(X);A=zeros(n,n);A(:,1) =Y'; s=0.0;p=1.0;q=1.0;c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end b=poly(X(j-1));q1=conv(q,b);c1=c1*j;q=q1; end C=A(n,n);b=poly(X(n));q1=conv(q1,b); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k); end L(k,:)=poly2sym(C);Q=poly2sym(q1); syms M wcgs=M*Q/c1;Cw=q1/c1; (1)保存名为newpoly.m 的M 文件 (2)输入MA TLAB 程序 >> X=[242,243,249,250]; >> Y=[13.681,13.526,13.098,13.095]; >> [A,C,L,wcgs,Cw]=newpoly(X,Y) 输出3阶牛顿插值多项式L 及其系数向量C 差商的矩阵A ,插值余项wcgs 及其 ) ()()1(ξ+n n f x R 的系数向量Cw 。 A = 13.6810 0 0 0 13.5260 -0.1550 0 0 13.0980 -0.0713 0.0120 0 13.0950 -0.0030 0.0098 -0.0003 C = 1.0e+003 *

matlab2012实验1参考答案

MATLAB 实验一 MATLAB 数值计算 试验报告说明: 1 做试验前请先预习,并独立完成试验和试验报告。 2 报告解答方式:将MATLAB 执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。 3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。 3 报告以Word 文档书写。 文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc 4 试验报告doc 文档以附件形式发送到maya_email@https://www.doczj.com/doc/831178892.html, 。凡文档命名不符合规范,或者发送方式不正确,不予登记。 5 每次试验报告的最后提交期限:下次试验课之前。 一 目的和要求 1 熟练掌握MATLAB 变量的使用 2 熟练掌握矩阵的创建 3 熟练掌握MATLAB 的矩阵和数组的运算 4 使用元胞数组和结构数组 二 试验内容 1 创建矩阵(必做) 1.1使用直接输入,from:step:to ,linspace ,logspace 等方式创建矩阵。 1.2 输入矩阵12342 46836 9 12a ?? ?= ? ?? ? 1.2-1)分别使用全下标和单下标达方式取出元素“8” >>a=[1 2 3 4;2 4 6 8;3 6 9 12] >> a(2,4) %全下标方式 >> a(11) % 单下标方式 1.2-2)分别用不同的方式从矩阵a 中取出子矩阵?? ??? ?1286 4 3 2 %方法一:全下标方式 a([2,3],[1 2 4]) %方法二:单下标方式 a([2 5 11;3 6 12]) % 方法三:利用逻辑向量 l1=logical([0 1 1])

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

数值分析的MATLAB程序

列主元法 function lianzhuyuan(A,b) n=input('请输入n:') %选择阶数A=zeros(n,n); %系数矩阵A b=zeros(n,1); %矩阵b X=zeros(n,1); %解X for i=1:n for j=1:n A(i,j)=(1/(i+j-1)); %生成hilbert矩阵A end b(i,1)=sum(A(i,:)); %生成矩阵b end for i=1:n-1 j=i; top=max(abs(A(i:n,j))); %列主元 k=j; while abs(A(k,j))~=top %列主元所在行 k=k+1; end for z=1:n %交换主元所在行a1=A(i,z); A(i,z)=A(k,z); A(k,z)=a1; end a2=b(i,1); b(i,1)=b(k,1); b(k,1)=a2; for s=i+1:n %消去算法开始m=A(s,j)/A(i,j); %化简为上三角矩阵 A(s,j)=0; for p=i+1:n A(s,p)=A(s,p)-m*A(i,p); end b(s,1)=b(s,1)-m*b(i,1); end end X(n,1)=b(n,1)/A(n,n); %回代开始 for i=n-1:-1:1 s=0; %初始化s for j=i+1:n s=s+A(i,j)*X(j,1);

end X(i,1)=(b(i,1)-s)/A(i,i); end X 欧拉法 clc clear % 欧拉法 p=10; %贝塔的取值 T=10; %t取值的上限 y1=1; %y1的初值 r1=1; %y2的初值 %输入步长h的值 h=input('欧拉法please input number(h=1 0.5 0.25 0.125 0.0625):h=') ; if h>1 or h<0 break end S1=0:T/h; S2=0:T/h; S3=0:T/h; S4=0:T/h; i=1; % 迭代过程 for t=0:h:T Y=(exp(-t)); R=(1/(p-1))*exp(-t)+((p-2)/(p-1))*exp(-p*t); y=y1+h*(-y1); y1=y; r=r1+h*(y1-p*r1); r1=r; S1(i)=Y; S2(i)=R; S3(i)=y; S4(i)=r; i=i+1; end t=[0:h:T]; % 红线为解析解,'x'为数值解 plot(t,S1,'r',t,S3,'x')

Matlab作业3(数值分析)答案

Matlab作业3(数值分析) 机电工程学院(院、系)专业班组 学号姓名实验日期教师评定 1.计算多项式乘法(x2+2x+2)(x2+5x+4)。 答: 2. (1)将(x-6)(x-3)(x-8)展开为系数多项式的形式。(2)求解在x=8时多项 式(x-1)(x-2) (x-3)(x-4)的值。 答:(1) (2)

3. y=sin(x),x从0到2π,?x=0.02π,求y的最大值、最小值、均值和标准差。 4.设x=[0.00.30.8 1.1 1.6 2.3]',y=[0.500.82 1.14 1.25 1.35 1.40]',试求二次多项式拟合系数,并据此计算x1=[0.9 1.2]时对应的y1。解:x=[0.0 0.3 0.8 1.1 1.6 2.3]'; %输入变量数据x y=[0.50 0.82 1.14 1.25 1.35 1.40]'; %输入变量数据y p=polyfit(x,y,2) %对x,y用二次多项式拟合,得到系数p x1=[0.9 1.2]; %输入点x1 y1=polyval(p,x1) %估计x1处对应的y1 p = -0.2387 0.9191 0.5318 y1 = a) 1.2909

5.实验数据处理:已知某压力传感器的测试数据如下表 p为压力值,u为电压值,试用多项式 d cp bp ap p u+ + + =2 3 ) ( 来拟 合其特性函数,求出a,b,c,d,并把拟合曲线和各个测试数据点画在同一幅图上。解: >> p=[0.0,1.1,2.1,2.8,4.2,5.0,6.1,6.9,8.1,9.0,9.9]; u=[10,11,13,14,17,18,22,24,29,34,39]; x=polyfit(p,u,3) %得多项式系数 t=linspace(0,10,100); y=polyval(x,t); %求多项式得值 plot(p,u,'*',t,y,'r') %画拟和曲线 x = 0.0195 -0.0412 1.4469 9.8267

控制理论实验报告MATLAB仿真实验解析

实验报告 课程名称:控制理论(乙) 指导老师:林峰 成绩:__________________ 实验名称:MATLAB 仿真实验 实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验九 控制系统的时域分析 一、 实验目的: 1.用计算机辅助分析的办法,掌握系统的时域分析方法。 2.熟悉Simulink 仿真环境。 二、实验原理及方法: 系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。 二、实验内容: 二阶系统,其状态方程模型为 ? 1x -0.5572 -0.7814 1x 1 = + u ? 2x 0.7814 0 2x 0 1x y = [1.9691 6.4493] +[0] u 2x 四、实验要求: 1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应; (1)画出系统的单位阶跃响应曲线; A=[-0.5572 -0.7814;0.7814 0 ]; B=[1;0];

同济大学数值分析matlab编程题汇编

MATLAB 编程题库 1.下面的数据表近似地满足函数2 1cx b ax y ++=,请适当变换成为线性最小二乘问题,编程求最好的系数c b a ,,,并在同一个图上画出所有数据和函数图像. 625 .0718.0801.0823.0802.0687.0606.0356.0995 .0628.0544.0008.0213.0362.0586.0931.0i i y x ---- 解: x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]'; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]'; A=[x ones(8,1) -x.^2.*y]; z=A\y; a=z(1); b=z(2); c=z(3); xh=-1:0.1:1; yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,'r+',xh,yh,'b*')

2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数 10 的近似根,并写出调用方式: 精度为10 解: >> edit gexianfa.m function [x iter]=gexianfa(f,x0,x1,tol) iter=0; while(norm(x1-x0)>tol) iter=iter+1; x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0)); x0=x1;x1=x; end >> edit f.m function v=f(x) v=x.*log(x)-1; >> edit g.m function z=g(y) z=y.^5+y-1; >> [x1 iter1]=gexianfa('f',1,3,1e-10) x1 = 1.7632 iter1 = 6 >> [x2 iter2]=gexianfa('g',0,1,1e-10) x2 = 0.7549 iter2 = 8

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

实验6 Matlab数值计算实验报告

Tutorial 6 实验报告 实验名称:Matlab数值计算 实验目的: 1、掌握数据统计与分析的方法; 2、掌握数据插值和曲线拟合的方法及其应用; 3、掌握多项式的常用运算。 实验内容: 1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作: (1)求A的最大元素和最小元素; (2)求A的每行元素的和以及全部元素的和; (3)分别对A的每列元素按升序、每行元素按降序排列。 2.用3次多项式方法插值计算1-100之间整数的平方根。 3.某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。 使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h各点的近似温度,并绘制插值后的温度曲线。 4.已知lgx在[1,101]区间10个整数采样点的函数值如下表所示,

试求lgx 的5次拟合多项式p(x),并绘制lgx 和p(x)在[1,101]区间的函数曲线。 5. 有3个多项式(),(),()P x x x x P x x P x x x =+++=+=++4322 123 24522 3,试进行下列操作: (1) 求()()()()P x P x P x P x =+123。 (2) 求()P x 的根。 (3) 当x 取矩阵A 的每一元素时,求()P x 的值。其中: .....A --?? ??=?? ???? 112140752350525 6. 求函数在指定点的数值导数。 (),,f x x ==123 7. 用数值方法求定积分。 (1)I π =? 210的近似值。 (2)ln() x I dx x += +?1 22011 实验结果: 1.

MATLAB仿真实验报告

MATLA仿真实验报告 学院:计算机与信息学院 课程:—随机信号分析 姓名: 学号: 班级: 指导老师: 实验一

题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示 G仁random( 'Normal' ,0,4,1,1024); y=max(G1) x=mi n(G1) m=mea n(G1) d=var(G1) plot(G1);

实验二 题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示。 N=10000; Ts=0.001; sigma=2; beta=2; a=exp(-beta*Ts); b=sigma*sqrt(1-a*a); w=normrnd(0,1,[1,N]); x=zeros(1,N); x(1)=sigma*w(1); for i=2:N x(i)=a*x(i-1)+b*w(i); end %polt(x); Rxx=xcorr(x0)/N; m=[-N+1:N-1]; Rxx0=(sigma A2)*exp(-beta*abs(m*Ts)); y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');

periodogram(y,[],N,1/Ts); 文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲) Frequency (Hz) 50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO 二 balj/ 」- □歹

数值分析matlab代码

1、%用牛顿法求f(x)=x-sin x 的零点,e=10^(-6) disp('牛顿法'); i=1; n0=180; p0=pi/3; tol=10^(-6); for i=1:n0 p=p0-(p0-sin(p0))/(1-cos(p0)); if abs(p-p0)<=10^(-6) disp('用牛顿法求得方程的根为') disp(p); disp('迭代次数为:') disp(i) break; end p0=p; end if i==n0&&~(abs(p-p0)<=10^(-6)) disp(n0) disp('次牛顿迭代后无法求出方程的解') end 2、disp('Steffensen加速'); p0=pi/3; for i=1:n0 p1=0.5*p0+0.5*cos(p0); p2=0.5*p1+0.5*cos(p1); p=p0-((p1-p0).^2)./(p2-2.*p1+p0); if abs(p-p0)<=10^(-6) disp('用Steffensen加速求得方程的根为') disp(p); disp('迭代次数为:') disp(i) break; end p0=p; end if i==n0&&~(abs(p-p0)<=10^(-6)) disp(n0) disp('次Steffensen加速后无法求出方程的解') end 1、%使用二分法找到方程 600 x^4 -550 x^3 +200 x^2 -20 x -1 =0 在区间[0.1,1]上的根, %误差限为 e=10^-4 disp('二分法')

a=0.2;b=0.26; tol=0.0001; n0=10; fa=600*(a.^4)-550*(a.^3)+200*(a.^2)-20*a-1; for i=1:n0 p=(a+b)/2; fp=600*(p.^4)-550*(p.^3)+200*(p.^2)-20*p-1; if fp==0||(abs((b-a)/2)0 a=p; else b=p; end end if i==n0&&~(fp==0||(abs((b-a)/2)

实验6答案 Matlab数值计算

实验6 Matlab数值计算 实验目的: 1、掌握数据统计与分析的方法; 2、掌握数据插值和曲线拟合的方法及其应用; 3、掌握多项式的常用运算。 实验内容: 1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作: (1)求A的最大元素和最小元素; (2)求A的每行元素的和以及全部元素的和; (3)分别对A的每列元素按升序、每行元素按降序排列。 a = randn(10,5)+10; ma = max(max(a)) mi = min(min(a)) s = sum(a,2) sa = sum(sum(a)) p = sort(a) p1 = -sort(-a,2) 2.用3次多项式方法插值计算1-100之间整数的平方根。 f = sqrt(n); interp1(n,f,(1:100),'cubic') 3.某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。

使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h 各点的近似温度,并绘制插值后的温度曲线。 n= 6:2:18; f1 = [18 20 22 25 30 28 24]; f2 = [15 19 24 28 34 32 30]; r = 6.5:2:17.5; w = interp1(n,f1,r,'spline'); w1 = interp1(n,f2,r,'spline'); subplot(211),plot(r,w) subplot(212),plot(r,w1) 4. 已知lgx 在[1,101]区间10个整数采样点的函数值如下表所示, 试求lgx 的5次拟合多项式p(x),并绘制lgx 和p(x)在[1,101]区间的函数曲线。 x = linspace(1,101,10); y = log(x) /log(10); p = polyfit(x,y,5) y1 = polyval(p,x) plot(x,y,':o',x,y1,'-*') legend('sin(x)','fit') 5. 有3个多项式(),(),()P x x x x P x x P x x x =+++=+=++4 3 2 2 123245223,试进 行下列操作: (1) 求()()()()P x P x P x P x =+123。 (2) 求()P x 的根。 (3) 当x 取矩阵A 的每一元素时,求()P x 的值。其中: .....A --?? ? ?=?????? 11214075 2350 5 25 p1 = [1 2 4 0 5]; p2 = [0 0 0 1 2];

MATLAB数值分析实验三(线性方程求解及精度分析)

佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 数值积分 专业班级 机械工程 姓 名 余红杰 学 号 2111505010 指导教师 陈剑 成 绩 日 期 月 日 一、实验目的 1、 掌握程序的录入和matlab 的使用和操作; 2、 了解影响线性方程组解的精度的因素——方法与问题的性态。 3、 学会Matlab 提供的“\”的求解线性方程组。 二、实验要求 1、按照题目要求完成实验内容; 2、写出相应的Matlab 程序; 3、给出实验结果(可以用表格展示实验结果); 4、分析和讨论实验结果并提出可能的优化实验。 5、写出实验报告。 三、实验步骤 1、用LU 分解及列主元高斯消去法解线性方程组 a)??????? ??=??????? ????????? ??----15900001.582012151526099999.2310 7104321x x x x , 输出b Ax =中系数LU A =分解的矩阵L 和U ,解向量x 和)det(A ;用列主元法的行交换次序解向量x 和求)det(A ;比较两种方法所得结果。 2、用列主高斯消元法解线性方程组b Ax =。 (1)、???? ? ??=????? ??????? ??--11134.981.4987.023.116.427 .199.103.601.3321x x x

(2)、???? ? ??=????? ??????? ??--11134.981.4990.023.116.427 .199.103.600.3321x x x 分别输出)det(,,A b A ,解向量x ,(1)中A 的条件数。分析比较(1)、(2)的计算结果 3、线性方程组b Ax =的A 和b 分别为 ??????? ??=1095791068565778710A ,?????? ? ??=31332332b 则解T x ),1,1,1,1(=. 用MATLAB 内部函数求)det(A 和A 的所有特征值和2)(A cond . 若令 ?????? ? ??=+98.99599.6989.998.585604.508.72.71.8710A A δ, 求解b x x A A =++))((δδ,输出向量x δ和2x δ,从理论结果和实际计算两方面分析线性 方程组b Ax =解的相对误差22/x x δ以及A 的相对误差 /A A δ的关系。 四、实验结果 1: %run311.m clc,clear; A = [10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2]; b = [8;5.90001;5;1]; %L U 分解 format short %小数点后四位,不然会受到后面的影响 [L U] = lu(A) %解方程组,输出A ,det(A) y = L\b; format long %小数点后15位显示 x = U\y

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

相关主题
文本预览
相关文档 最新文档