当前位置:文档之家› MATLAB实验

MATLAB实验

MATLAB实验
MATLAB实验

实验一傅立叶变换及图象的频域处理

一、实验目的

1、了解离散傅立叶变换的基本原理;

2、掌握应用MATLAB语言进行FFT及逆变换的方法;

3、了解图象在频域中处理方法,应用MATLAB语言作简单的低通滤波器。

二、实验原理

1、傅立叶变换的基本知识。

在图象处理的广泛应用领域中,傅立叶变换起着非常重要的作用,具体表现在包括图象分析、图象增强及图象压缩等方面。

假设f(x,y)是一个离散空间中的二维函数,则该函数的二维傅立叶变换的定义如下:u=0,1…M-1 v=0,1…N-1 (1)

离散傅立叶反变换的定义如下:

x=0,1…M-1 y=0,1…N-1(3)

F(p,q)称为f(m,n)的离散傅立叶变换系数。这个式子表明,函数f(m,n)可以用无数个不同频率的复指数信号和表示,而在频率(w1,w2)处的复指数信号的幅度和相位是F(w1,w2)。

例如,函数f(m,n)在一个矩形区域内函数值为1,而在其他区域为0.

假设f(m,n)为一个连续函数,则f(m,n)的傅立叶变换的幅度值(即)显示为网格图。

将傅立叶变换的结果进行可视化的另一种方法是用图象的方式显示变换结果的对数幅值。

2、MATLAB提供的快速傅立叶变换函数

(1)fft2

fft2函数用于计算二维快速傅立叶变换,其语法格式为:

B = fft2(I)

B = fft2(I)返回图象I的二维fft变换矩阵,输入图象I和输出图象B大小相同。

例如,计算图象的二维傅立叶变换,并显示其幅值的结果,其命令格式如下

load imdemos saturn2

imshow(saturn2)

B = fftshift(fft2(saturn2));

imshow(log(abs(B)),[],'notruesize')

(2)fftshift

MATLAB提供的fftshift函数用于将变换后的图象频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:

B = fftshift(I)

对于矩阵I,B = fftshift(I)将I的一、三象限和二、四象限进行互换。

(2)ifft2

ifft2函数用于计算图象的二维傅立叶反变换,其语法格式为:

B = ifft2(I)

B = ifft2(A)返回图象I的二维傅立叶反变换矩阵,输入图象I和输出图象B大小相同。其语法格式含义与fft2函数的语法格式相同,可以参考fft2函数的说明。

3、简单低通滤波器的设计

一个图象经过傅立叶变换后,就从空域变到了频域,因此我们可以用信号处理中对于频域信号的处理方法对一幅图象进行处理。比如对图象进行低通滤波等。

虽然在计算机中必定能够模拟一个锐截止频率的理想低通滤波器,但它们不能用电子元件来实现。实际中比较常用的低通滤波器有:巴特沃思(Butterworth)滤波器、指数滤波器(ELPF)、梯形低通滤波器等。

在实验中我们设计一个理想的低通滤波器。

设计理想的低通滤波器由其定义可知只要设计一个与频域图象大小完全相同的矩阵。在某一个域值内该矩阵的值为1,其余为0即可。

例:若图象的大小为128*128,则可以这样设计一个低通滤波器:

H=zeros(128);

H(32:96,32:96)=1; %此处的范围是人为取定的,可以根据需要更改。

若图象矩阵I的傅立叶变换是B(已经用fftshift将频谱中心移至矩阵的中心),则对这幅图象做低通滤波,再做傅立叶逆变换命令为

LOWPASS=B.*H; %此处设变换后的矩阵为LOWPASS,另注意这儿是矩阵的点乘。

C=ifft2(LOWPASS);

Imshow(abs(C))

三、实验要求

1、读取图象girl.bmp,显示这幅图象,对图象作傅立叶变换,显示频域振幅图象。作傅立叶逆变换,显示图象,看是否与原图象相同。

2、设计一个低通滤波器,截止频率自选,对图象作低通滤波,再作反变换,观察不同的截止频率下反变换后的图象与原图象的区别。

2、选做:显示一幅频域图象的相位分布图,分别对振幅分布和相位分布作傅立叶逆变换,观察两幅图象,体会频域图象中振幅与位相的作用。

附件:图像的读取

MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息(见例1)

%例1:图像数据及图像信息的读取

imfinfo e:\matlabwork\tuxiang\Girl.bmp

%读取图像信息

[A,M]=imread('e:\matlabwork\tuxiang\Girl.bmp','bmp');

%图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中

imshow(A,M);title('原图像');

M(:,1)=0;%将颜色数据矩阵的一列置零

figure

imshow(A,M);title('改变颜色后的图像')

图像滤波处理

在数字图像处理中,常常会遇到图像中混杂有许多的噪声。因此,在进行图像处理中,有时要先进行祛除噪声的工作。最常用的祛除噪声的方法是用滤波器进行滤波处理。MATLAB的图像处理工具箱里也设计了许多的滤波器。如均值滤波器、中值滤波器、维纳滤波器等。用户可以很方便的运用一些函数完成数字滤波工作。(见例5)。

%例5:用滤波器祛除图象噪声(分别用均值滤波,中值滤波,及维纳滤波器祛除加入高斯噪声的图象)

I=imread('e:\matlabwork\tuxiang\Girl.bmp','bmp');

J=imnoise(I,'gaussian',0,0.002);%加入高斯噪声

%进行均值滤波

h=fspecial('average',3);

I2=uint8(round(filter2(h,I)));

%进行中值滤波

I3=medfilt2(J,[3,3]);

%进行维纳滤波

I4=wiener2(J,[3,3]);%进行一次维纳滤波

I5=wiener2(I4,[3,3]);%进行二次维纳滤波

subplot(2,3,1),imshow(I),title('原图象')

subplot(2,3,2),imshow(J),title('加噪声图象')

subplot(2,3,3),imshow(I2),title('均值滤波后图象')

subplot(2,3,4),imshow(I3),title('中值滤波后图

傅立叶变换

傅立叶变换是线性系统分析的一个有力的工具。它在图像处理,特别是在图像增强、复原和压缩中,扮演着非常重要的作用。实际中一般采用一种叫做快速傅立叶变换(FFT)的方法,MATLAB中的fft2指令用于得到二维FFT的结果,ifft2指令用于得到二维FFT逆变换的结果。(见例6)

%例6:近似冲击函数的二维快速傅立叶变换(FFT)

x=1:99;y=1:99;

[X,Y]=meshgrid(x,y);

A=zeros(99,99);

A(49:51,49:51)=1;

B=fft2(A);

subplot(1,2,1),imshow(A),xlabel('空域图象');

subplot(1,2,2),imshow(B),xlabel('时域图象');

figure

subplot(1,2,1),mesh(X,Y,A),xlabel('空域'),grid on;

subplot(1,2,2),mesh(X,Y,abs(B)),xlabel('时域'),grid on;

实验二求六面体体积一、实验目的

与本实验有关的函数

二、实验原理

三.实验要求

实验三 求函数的驻点

一、实验目的

掌握如何查找MATLAB 中已有的函数对问题进行求解。 二、实验原理

1.计算二元函数的极值

对于二元函数的极值问题,根据二元函数极值的必要和充分条件,可分为以下几个步骤:

步骤1.定义二元函数),(y x f z =. 步骤2.求解方程组

),(,0),(==y x f y x f y x ,得到驻点.

步骤3.对于每一个驻点

)

,(00y x ,求出二阶偏导数

2

2

2

2

2

,,.

z z z A B C x

x y

y

???=

=

=

????

步骤4. 对于每一个驻点

)

,(00y x ,计算判别式2

B A

C -,如果02

>-B AC ,则该驻点是极

值点,当0>A 为极小值, 0

=-B AC ,需进一步判断此驻点是否为极

值点; 如果02

<-B AC 则该驻点不是极值点.

2.计算二元函数在区域D 内的最大值和最小值

设函数),(y x f z =在有界区域D 上连续,则),(y x f 在D 上必定有最大值和最小值。求

),(y x f 在D 上的最大值和最小值的一般步骤为:

步骤1. 计算),(y x f 在D 内所有驻点处的函数值;

步骤2. 计算),(y x f 在D 的各个边界线上的最大值和最小值;

步骤3. 将上述各函数值进行比较,最终确定出在D 内的最大值和最小值。 3.函数求偏导数的MATLAB 命令

MATLAB 中主要用diff 求函数的偏导数,用jacobian 求Jacobian 矩阵。

可以用help diff, help jacobian 查阅有关这些命令的详细信息 例1 求函数

3

282

4

-+-=y xy x z 的极值点和极值.

首先用diff 命令求z 关于x,y 的偏导数 >>clear; syms x y;

>>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y)

结果为

ans =4*x^3-8*y ans =-8*x+4*y 即.

48,

843

y x y

z y x x

z

+-=??-=??再求解方程,求得各驻点的坐标。一般方程组的符号解用

solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解方程的MATLAB 代码为:

>>clear;

>>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y')

结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,4).下面再求判别式中的二阶偏导数:

>>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3;

>>A=diff(z,x,2) >>B=diff(diff(z,x),y) >>C=diff(z,y,2)

结果为

A=2*x^2 B =-8 C =4

由判别法可知)2,4(--P 和)2,4(Q 都是函数的极小值点,而点Q(0,0)不是极值点,实际上,

)2,4(--P 和)2,4(Q 是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍点。

>>clear;

>>x=-5:0.2:5; y=-5:0.2:5; >>[X,Y]=meshgrid(x,y); >>Z=X.^4-8*X.*Y+2*Y.^2-3; >>mesh(X,Y,Z)

>>xlabel('x'),ylabel('y'),zlabel('z') 结果如图

图 函数曲面图

可见在图中不容易观测极值点,这是因为z 的取值范围为[-500,100],是一幅远景图,局部信息丢失较多,观测不到图像细节.可以通过画等值线来观测极值.

>>contour(X,Y,Z, 600)

>>xlabel('x'),ylabel('y')

结果如图

图 等值线图

由图可见,随着图形灰度的逐渐变浅,函数值逐渐减小,图形中有两个明显的极小值点

)2,4(--P 和)2,4(Q .根据提梯度与等高线之间的关系,梯度的方向是等高线的法方向,且指向

函数增加的方向.由此可知,极值点应该有等高线环绕,而点)0,0(Q 周围没有等高线环绕,不是极值点,是鞍点.

例2 求函数xy z =在条件1=+y x 下的极值..构造Lagrange 函数

)1(),(-++=y x xy y x L λ

求Lagrange 函数的自由极值.先求L 关于λ,,y x 的一阶偏导数

>>clear; syms x y k >>l=x*y+k*(x+y-1); >>diff(l,x) >>diff(l,y) >>diff(l,k)

得,

1,

,

-+=??+=??+=??y x L x y

L y x

L

λ

λλ再解方程

>>clear; syms x y k

>>[x,y,k]=solve('y+k=0','x+k=0','x+y-1=0','x','y','k')

,

21

,2

1,2

1-

==

=

λy x 进过判断,此点为函数的极大值点,此时函数达到最大值.

例3 抛物面2

2y x z +=被平面1=++z y x 截成一个椭圆,求这个椭圆到原点的最长与最短距离.

这个问题实际上就是求函数

2

2

2

),,(z y x z y x f ++=

在条件2

2y x z +=及1=++z y x 下的最大值和最小值问题.构造Lagrange 函数

)

1()(),,(2

2

2

2

2

-+++-++++=z y x z y x z y x z y x L μλ

求Lagrange 函数的自由极值.先求L 关于μλ,,,,z y x 的一阶偏导数

>>clear; syms x y z u v

>>l=x^2+y^2+z^2+u*(x^2+y^2-z)+v*(x+y+z-1); >>diff(l,x) >>diff(l,y) >>diff(l,z) >>diff(l,u) >>diff(l,v)

μ

λμλμλ+-=??++=??++=??z z

L y y y

L x x x L 2,

22,

22

1

,

2

2-++=??-+=??z y x L z y x L μ

λ

再解方程

>>clear;

>>[x,y,z,u,v]=solve('2*x+2*x*u+v=0','2*y+2*y*u+v=0','2*z-u+v=0', 'x^2+y^2-z=0','x+y+z-1=0','x','y','z','u','v')

.

32,2

3

1,33

117,33

53 =±

-=

-=±

-=z y x μλ

上面就是Lagrange 函数的稳定点,求所求的条件极值点必在其中取到。由于所求问题存在最大值与最小值(因为函数

f

在有界闭集

}

1,:),,{(2

2=++=+z y x z y

x z y x ,上连续,从而

存在最大值与最小值),故由

3

59.)32,2

31,2

31(

-f

求得的两个函数值,可得椭圆到原点的最长距离为359+,最短距离为359-。

三、实验要求

1.求144

4

+-+=xy y x z 的极值,并对图形进行观测。 2.求函数()2

2

2,y x y x f +=在圆周12

2=+y

x 的最大值和最小值。

3.在球面12

22=++z y x 求出与点(3,1,-1)距离最近和最远点。

实验四 求余弦的积分并绘出图像

一、实验目的

1、了解绘图工具的使用。

2、掌握MATLAB 积分计算。 二、实验原理

4.1积分的有关理论

定积分:积分是微分的无限和,函数)(x f 在区间],[b a 上的积分定义为

?

=→??=

=

n

i i

i x b

a

x f dx x f I i 1

)max()(lim

)(ξ

其中

.

,,2,1),,(,,1110n i x x x x x b x x x a i i i i i i n =∈-=?=<<<=--ξ从几何意义上说,对于

],[b a 上非负函数)(x f ,记分值I 是曲线)(x f y =与直线b x a x ==,及x 轴所围的曲边梯形

的面积。有界连续(或几何处处连续)函数的积分总是存在的。

微积分基本定理(Newton-Leibniz 公式):)(x f 在],[b a 上连续,且

],[),()('b a x x f x F ∈=,则有

)

()()(a F b F dx x f b

a

-=?

这个公式表明导数与积分是一对互逆运算,它也提供了求积分的解析方法:为了求)(x f 的定积分,需要找到一个函数)(x F ,使)(x F 的导数正好是)(x f ,我们称)(x F 是)(x f 的原函数或不定积分。不定积分的求法有学多数学技巧,常用的有换元积分和分部积分法。从理论上

讲,可积函数的原函数总是存在的,但很多被积函数的原函数不能用初等函数表示,也就是说这些积分不能用解析方法求解,需用数值积分法解决。

在应用问题中,常常是利用微分进行分析,而问题最终归结为微分的和(即积分)。一些更复杂的问题是含微分的方程,不能直接积分求解。 多元函数的积分称为多重积分。二重积分的定义为

∑∑

??

??=

→?+?i

j

j

i j i y x G

y x f dxdy y x f i i ),(lim ),(0

)max(2

2

ηξ

当),(y x f 非负时,积分值表示曲顶柱体的体积。二重积分的计算主要是转换为两次单积分来解决,无论是解析方法还是数值方法,如何实现这种转换,是解决问题的关键。

4.2积分的数值方法

梯形法:将],[b a 划分为若干小区间

,.

10b x x x a n =<<<= 则

∑?

?

=-=

=

n

i x x b

a

i

i dx

x f dx x f I 1

1

)()(

在每一小区间

]

,[1i i x x -上)(x f 近似为一直线,用弦代替,有

))

()((2

)(11

1

i i i i x x x f x f x x dx x f i

i +-≈

--?

-

从而

=--+-≈

n

i i i i i x f x f x x I 1

11

))

()((2

称为梯形公式。通常将区间],[b a n 等分,

ih

a x n

a b h i +=-=

,,

-=-+

+=≈1

1

1))

(2

)

()((

n i i n x f a f b f h T I

可以证明,当∞→n 时由上述公式给出的梯形法是收敛的。

重积分:重积分的数值计算可通过若干次单积分的组合实现,如对于二重积分

??

=

G

dxdy

y x f I ),(

先化为二次计分

?

?

=

)

()

(),(x d x c b

a

dy

y x f dx I

利用梯形法,先将],[b a 区间m 等分,.

,,1,0,,m i ih a x m

a b h x i x =+=-=

利用梯形积分公

式可得

?

-==

+

+≈1

1

)

()

(.

),()()),())()((2

1(

m i x d x c i i i x dy y x f x G x G b G a G h I i i

再将

)]

(),([i i x d x c 区间n 等分,

.

,,1,0),(,)

()()(n j i jh a y n

x c x d i h y ij i i y =+=-=

利用梯

形积分公式可得

-=+

+≈1

1

)).

,()))(,())(,((2

1)(

()(n j ij i i i i i y i y x f x d x f x c x f i h x G

4.3积分的MATLAB 命令

MATLAB 中主要用int 进行符号积分,用trapz,dblquad,quad,quad8等进行数值积分。

可以用help int, help trapz, help quad等查阅有关这些命令的详细信息

例1 用符号积分命令int计算积分?xdx x sin

2

.

MATLAB代码为:

>>clear; syms x;

>>int(x^2*sin(x))

结果为

ans =-x^2*cos(x)+2*cos(x)+2*x*sin(x)

如果用微分命令diff验证积分正确性,MATLAB代码为:

>>clear; syms x;

>>diff(-x^2*cos(x)+2*cos(x)+2*x*sin(x))

结果为

ans =x^2*sin(x)

例2 计算数值积分

2

4

2

x dx -

?

.

先用梯形积分法命令trapz计算积分?

-

2

2

4dx

x

,MATLAB代码为:

>>clear; x=-2:0.1:2; y=x.^4; %积分步长为0.1 >>trapz(x,y)

结果为

ans = 12.8533

实际上,积分?

-

2

2

4dx

x

的精确值为

8.

12

5

64

=

。如果取积分步长为0.01, MATLAB代码为:

>>clear; x=-2:0.01:2; y=x.^4; %积分步长为0.01

>>trapz(x,y)

结果为

ans =12.8005

可用不同的步长进行计算,考虑步长和精度之间的关系。一般说来,trapz是最基本的数值积分方法,精度低,适用于数值函数和光滑性不好的函数.

如果用符号积分法命令int计算积分?

-

2

2

4dx

x

输入MATLAB代码为:>>clear; syms x;

>>int(x^4,x,-2,2)结果为

ans =64/5

例3 计算数值积分

??

+

+

+

1

2

2

)

1(

y

x

dxdy

y

x

,可将此二重积分转化为累次积分

??

??----≤+++=

+

+11111

2

2

2

2

)1()1(x

x

y x dy

y x dxdy y x

输入MATLAB 代码为: >>clear; syms x y;

>>iy=int(1+x+y,y,-sqrt(1-x^2),sqrt(1-x^2)); >>int(iy,x,-1,1)

结果为

ans =pi

例4(广义积分) 计算广义积分?

+∞

--

=

dx

x

x I )50

exp(sin 2

输入MATLAB 代码为:

>>syms x;

>>y=int(exp(sin(x)-x^2/50),-inf,inf);

>>vpa(y,10)

结果为15.86778263。

习题4

1.(不定积分)用int 计算下列不定积分,并用diff 验证

?

dx

x x 2

sin ,?+x

dx

cos 1,

?+1x

e

dx

,?xdx

arcsin ,

?xdx

3

sec

2.(定积分)用trapz,int 计算下列定积分

?

1

sin dx

x

x ,

1

dx

x x

,?π

20

)2sin(dx

x e x

,?-1

2

dx e

x

3.(椭圆的周长) 用定积分的方法计算椭圆1

4

92

2

=+

y

x

的周长

4.(二重积分)计算积分??≤+++y y x dxdy

y x 22

2

)1(

5. (广义积分)计算广义积分

?

-+-dx

x

x 4

2

1)exp(,

?

1

)

tan(dx

x

x ,

?

-1

2

1sin dx

x

x

实验五用plot函数画出函数图像

一、实验目的:掌握MATLAB中重要绘图工具plot函数的使用。

二、实验原理:matlab之基本绘图函数

clear:清空内存中的变量;

figure:强制生成一个新的个绘图窗口;

syms x y t :声明变量;

fplot(函数表达式,绘图区间);

plot(横坐标向量,纵坐标向量,颜色/线形等参数)

ezplot(函数表达式):简单的fplot,easy fplot

axis([xmin xmax ymin ymax ...]):设置坐标轴显示范围

Matlab绘图中用到的直线属性包括:

(1)LineStyle:线形(2)LineWidth:线宽(3)Color:颜色(4)MarkerType:标记点的形状(5)MarkerSize:标记点的大小(6)MarkerFaceColor:标记点内部的填充颜色

(7)MarkerEdgeColor:标记点边缘的颜色

1、线形

标记符线形

- 实线;-- 虚线;:点线; -. 点横线

2、点形

标记符点形

+ 加号; o 圆圈; * 星号;. 实心点;x 叉号;s 正方形;d 钻石形;^ 上三角形

v 下三角形;> 右三角形; < 左三角形; p 五角星形; h 六角星形;

3、颜色

标记符颜色

r 红; g 绿; b 蓝; c 蓝绿; m 紫红; y 黄; k 黑; w 白

二、描绘不同的直线

当我们需要对不同类别的数据点进行连线的时候,可以设置以下属性来区分不同类别的点和相应的直线:

(1)LineStyle:线形

(2)MarkerSymbol:点形

(3)Color:颜色

例如:

plot(x,y,'-.or','MarkerFaceColor','g')

其中线形为点横线,数据点形状为圆圈,线条和数据点边缘的颜色都是红色,数据点的填充颜色为绿色。

三、描绘数据点的分布

有时候我们希望画出数据点的分布情况,不需要画出这些点之间的连线,则可以按以下方式实现:plot(x,y,'d')

即只定义数据点的点形。

最后给出一个例子说明怎样运用以上属性来画图:

plot(t,sin(2*t),'-mo',...

'LineWidth',2,...

'MarkerEdgeColor','k',...

'MarkerFaceColor',[.49 1 .63],...

'MarkerSize',12)

area填充一个图形与横坐标之间的区域

bar绘制条形图

barh绘制三维条形图

bar3绘制三维水平条形图

compass绘制绕行曲线

errorbar绘制误差曲线

fill绘制实心的二维多边形

hist绘制直方图

pie绘制饼形状

plotmatrix绘制矩阵散布图

scatter绘制离散数据图

stem绘制离散序列的柄状图

stairs绘制阶梯图

另外提醒一点,Matlab的reshap e函数是列优先的,如:

y = 1 2 3 4 5 6

reshape(y,3,2)=

1 4

2 5

3 6

而不是 1 2 3

4 5 6

习题5

1.绘制一个长方形,将长方形3等分,每等分分别着不同的颜色。

2.某工厂2004年度各季度产值(单位:万元)分别为450.6,395.9,410.2,450.9,绘制折线图,并说明图形的实际意义。

实验六 用matlab 求解多项式(常微分方程)

一、实验目的

掌握运用MATLAB 中已有的函数求解多项式(常微分方程)。 二、实验原理

1.微分方程的概念

未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。如果未知函数是一元函数,称为常微分方程。常微分方程的一般形式为

0),,",',,()

(=n y

y y y t F

如果未知函数是多元函数,成为偏微分方程。联系一些未知函数的一组微分方程组称为微分方程组。微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为

)

()(')()(1)

1(1)

(t b y t a y t a y

t a y

n n n n =++++--

若上式中的系数

n

i t a i ,,2,1),( =均与t 无关,称之为常系数。

2.常微分方程的解析解

有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1

+=y dt dy

可化为

dt

y dy =+1

,两边积分可得通解为1

-=t

ce y .其中c 为任意常数.有些常微分方程可用一些技

巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解.

线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。

一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程

)

,,",',()

1()

(-=n n y

y y t f y

)

1(21,,',-===n n y

y y y y y ,可将上式化为一阶方程组 ???????

??====-),,,,(''''2113221n n n

n y y y t f y y

y y y y y

反过来,在许多情况下,一阶微分方程组也可化为高阶方程。所以一阶微分方程组与高阶常微分方程的理论与方法在许多方面是相通的,一阶常系数线性微分方程组也可用特征根法求解。

3.微分方程的数值解法

除常系数线性微分方程可用特征根法求解,少数特殊方程可用初等积分法求解外,大部分微分方程无限世界,应用中主要依靠数值解法。考虑一阶常微分方程初值问题

??

?=<<=0

00)()),(,()('y t y t t t t y t f t y f

MATLAB数学实验第二版答案(胡良剑)

数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 设计提示 1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……) 指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。Matlab 自动给这些曲线以不同颜色。标注可用text 函数。 2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3,注意参考帮助中的示例。 三、实验内容 1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、 杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。 2、绘制函数曲线,要求写出程序代码。 (1) 在区间[0:2π]均匀的取50个点,构成向量t (2) 在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲 线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。 (3) 分别在靠近相应的曲线处标注其函数表达式。 3.将图形窗口分成两个绘图区域,分别绘制出函数: ???+-=+=1 352221x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12] 区间上,2y 在[-2,1.5]区间上。 4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的

取值范围设为[-3,3]。 10102 2y x z +-= 思考题: 1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点 为圆心,画一个如图所示的红色空心圆。(图例半径r=5);左图参考 polar 函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。其中,t 的区间为0~2*pi ,步长为0.1。 2.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5, 每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。

matlab实验报告

MATLAB 数学实验报告 指导老师: 班级: 小组成员: 时间:201_/_/_

Matlab 第二次实验报告 小组成员: 1 题目:实验四,MATLAB 选择结构与应用实验 目的:掌握if 选择结构与程序流程控制,重点掌握break,return , pause语句的应用。 问题:问题1:验证“哥德巴赫猜想” ,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。 问题分析:由用户输入一个大于6 的偶数,由input 语句实现。由if 判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。 编程:function [z1,z2]=gede(n); n=input('please input n')

if n<6 disp('data error'); return end if mod(n,2)==0 for i=2:n/2 k=0; for j=2:sqrt(i) if mod(i,j)==0 k=k+1; end end for j=2:sqrt(n-i) if mod(n-i,j)==0 k=k+1; end end if k==0 fprintf('two numbers are') fprintf('%.0f,%.0f',i,n- i) break end

end end 结果分析 如上图,用户输入了大于6的偶数返回两个质数5和31,通过 不断试验,即可验证哥德巴赫猜想。 纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。 2题目:实验四,MATLAB选择结构与应用实验 目的:用matlab联系生活实际,解决一些生活中常见的实际问 题。

主成分分析法matlab实现,实例演示

利用Matlab 编程实现主成分分析 1.概述 Matlab 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是 最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。Matlab 语言在各国高校与研究单位起着重大的作用。主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。 1.1主成分分析计算步骤 ① 计算相关系数矩阵 ?? ? ???? ???? ?? ?=pp p p p p r r r r r r r r r R 2 122221 11211 (1) 在(3.5.3)式中,r ij (i ,j=1,2,…,p )为原变量的xi 与xj 之间的相关系数,其计算公式为 ∑∑∑===----= n k n k j kj i ki n k j kj i ki ij x x x x x x x x r 1 1 2 2 1 )() () )(( (2) 因为R 是实对称矩阵(即r ij =r ji ),所以只需计算上三角元素或下三角元素即可。

② 计算特征值与特征向量 首先解特征方程0=-R I λ,通常用雅可比法(Jacobi )求出特征值 ),,2,1(p i i =λ,并使其按大小顺序排列,即0,21≥≥≥≥p λλλ ;然后分别求 出对应于特征值i λ的特征向量),,2,1(p i e i =。这里要求i e =1,即112 =∑=p j ij e ,其 中ij e 表示向量i e 的第j 个分量。 ③ 计算主成分贡献率及累计贡献率 主成分i z 的贡献率为 ),,2,1(1 p i p k k i =∑=λ λ 累计贡献率为 ) ,,2,1(11 p i p k k i k k =∑∑==λ λ 一般取累计贡献率达85—95%的特征值m λλλ,,,21 所对应的第一、第二,…,第m (m ≤p )个主成分。 ④ 计算主成分载荷 其计算公式为 ) ,,2,1,(),(p j i e x z p l ij i j i ij ===λ (3)

matlab实验(西北农林科技大学)

课程实验报告 学年学期2015-2016学年第2学期 课程名称MATLAB与科学计算 实验名称实验一 MATLAB环境与数值计算实验室测量测绘实验中心计算机室专业年级土木13级 学生姓名 学生学号 20130 提交时间 2016-06-02 成绩 任课教师王增红 水利与建筑工程学院

实验一 MATLAB环境与数值计算 1、目的和要求 (1)熟练掌握MATLAB的启动和退出、MATLAB的命令窗口;常用选单和工具栏,通过实例初步认识对MATLAB的命令和程序运行等。 (2)熟练掌握MATLAB变量的使用; (3)熟练掌握矩阵的创建、掌握MATLAB的矩阵和数组的运算; (4)熟悉MATLAB多项式的运用,掌握MATLAB的拟合和插值方法、积分运算和统计运算。2、内容和步骤 参见教材实验一、二。 3、实验报告提交要求 (1)用MALTAB命令和M程序两种方式求解三元一次方程组。 答:以求解三元一次方程组{2a?b+3c=5 3a+b?5c=5 4a?b+c=9 为例: (2)用MALTAB命令和M程序两种方式求解3×3复数矩阵的模和相角。答:

(3)创建一个4╳4矩阵,求逆矩阵、产生对角矩阵、求矩阵的秩等。 (5)创建一个一元四次多项式,进行多项式求值,求根计算。 432

(6)创建一个一元三次多项式,取十个不同自变量值,计算多项式的值,并分别进行一阶、二阶拟合,图示原始数据和拟合结果 (7)自建一个一元三次多项式,取十个不同自变量值,计算多项式的值,并用线性、相邻点和三次插值,图示其插值结果。 解: (8)给出多组温度的测定值(内含平均温度、最低、最高温度),并求其平均温度、最低、最高温度的平均值、标准差等。 解: >> a=fix(40*rand(6,3)+1)

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

matlab实验十--周期函数

实验十周期函数 【实验目的】 1.了解周期函数的基本概念。 2.了解周期函数经过四则运算、复合运算、求导运算、积分运算后的周期性。 3.学习、掌握MATLAB软件有关命令。 【实验内容】 从图形上观察六个三角函数的周期性。 【实验准备】 1.周期函数的基本概念 函数() f x是以T为周期的周期函数是指对任何x,有 += ()() f x T f x 使得上式成立的最小正数T称为函数的最小正周期。 2.周期函数的四则运算 3.周期函数的最小正周期 【实验重点】 1、周期函数的四则运算与复合 2、周期函数的求导与积分运算 【实验难点】 1、最小正周期的确定 【实验方法与步骤】 练习 1 图形上观察六个三角函数

sinx,cosx,tanx,cotx,secx,cscx的周期性。绘制正弦函数y=sinx 在区间[-6π,6π]的图形,相应的MATLAB代码为 >>x=-6*pi:2*pi/30:6*pi; >>y=sin(x); >>plot(x,y); >>xlabel('x');ylabel('y'); 运行结果见图10.1。 从图形中可以看出y=sinx为周期函数,最小正周期T≈6。实际上,最小正周期T=2π=6.28…。同样,可以画出余弦函数y=cosx的图形,见图10.2,其最小正周期也为T=2π。

画正切函数y=tanx 的图形时,要注意函数在,0,1,2,...2x k k π π=+=±±是不连续,所以我们只能分别绘出函数在区间(,),0,1,2,...22k k k ππ ππ-+=±±的图形。相应的MATLAB 代码为 >>x=-1.5:0.01:1.5; >>x1=x-pi;x2=x+pi; >>y=tan(x);y1=tan(x1);y2=tan(x2); >>plot(x,y,x1,y1,x2,y2); >>xlabel('x');ylabel('y'); 运行结果见图10.3。

matlab 实验案例 理发店模拟

实验案例理发店模拟 1 实验案例 (1) 1.1 案例:理发店系统研究 (1) 1.1.1 问题分析 (2) 1.1.2 模型假设 (2) 1.1.3 变量说明 (2) 1.1.4 模型建立 (2) 1.1.5 系统模拟 (3) 1.1.6 计算机模拟算法设计 (4) 1.1.7 计算机模拟程序 (5) 1.1.8 思考题 (8) 1实验案例 1.1 案例:理发店模拟 例子:一个理发店有两位服务员A和B,顾客们随机到达店内,其中60%的顾客仅需剪发,每位花5分钟时间,另外40%顾客既要剪发又要洗发,每位用时8分钟。 理发店是个含有多种随机因素的系统,请对该系统进行模拟,并对其进行评判。 (准备怎么做) 可供参考内容 “排队论”,“系统模拟”,“离散系统模拟”,“事件调度法”

1.1.1 问题分析 理发店系统包含诸多随机因素,为了对其进行评判就是要研究其运行效率, 从理发店自身利益来说,要看服务员工作负荷是否合理,是否需要增加员工等考 虑。从顾客角度讲,还要看顾客的等待时间,顾客的等待队长,如等待时间过长 或者等待的人过多,则顾客会离开。理发店系统是一个典型的排队系统,可以用 排队论有关知识来研究。 1.1.2 模型假设 1. 60%的顾客只需剪发,40%的顾客既要剪发,又要洗发; 2. 每个服务员剪发需要的时间均为5分钟,既剪发又洗发则花8分钟; 3. 顾客的到达间隔时间服从指数分布; 4. 服务中服务员不休息。 1.1.3 变量说明 u :剪发时间(单位:分钟),u=5m ; v: 既剪发又理发花的时间(单位:分钟),v=8m ; T : 顾客到达的间隔时间,是随机变量,服从参数为λ的指数分布,(单位: 分钟) T 0:顾客到达的平均间隔时间(单位:秒),T 0=λ 1; 1.1.4 模型建立 由于该系统包含诸多随机因素,很难给出解析的结果,因此可以借助计算机 模拟对该系统进行模拟。 考虑一般理发店的工作模式,一般是上午9:00开始营业,晚上10:00左 右结束,且一般是连续工作的,因此一般营业时间为13小时左右。 这里以每天运行12小时为例,进行模拟。 这里假定顾客到达的平均间隔时间T 0服从均值3分钟的指数分布, 则有 3小时到达人数约为603 603=?人, 6小时到达人数约为1203 606=?人, 10小时到达人数约为2003 6010=?人, 这里模拟顾客到达数为60人的情况。 (如何选择模拟的总人数或模拟总时间)

matlab 数学实验 迭代 _ 蛛网图(免积分)

数学实验—实验报告(免积分) 一、实验项目:Matlab实验三—迭代 二、实验目的和要求 a.熟悉MATLAB软件的用户环境,掌握其一般目的命令和MATLAB数组操作与 运算函数; b.掌握MATLAB软件的绘图命令,能够熟练应用循环和选择结构实现各种循环 选择功能; c.借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜 想,发现进而证实其中的规律。 三、实验内容 问题一:将方程53 x x x +-+=改写成各种等价的形式进行迭代 5210 观察迭代是否收敛,并给出解释。 问题二:迭代以下函数,分析其收敛性。 4 f(x)=x-a 使用线性连接图、蛛网图或费根鲍姆图对参数a进行讨论和观察,会得到什么结论? 问题一: (1)画图 x1=-6:0.01:6; x2=-3:0.01:3; x3=-1:0.01:1; x4=-0.8:0.01:-0.75; y1=x1.^5 +5*x1.^3-2*x1+1; y2=x2.^5 +5*x2.^3-2*x2+1; y3=x3.^5 +5*x3.^3-2*x3+1; y4=x4.^5 +5*x4.^3-2*x4+1; subplot(2,2,1),plot(x1,y1) ,title('图(1)') ,grid on, subplot(2,2,2),plot(x2,y2) ,title('图(2)'),grid on, subplot(2,2,3),plot(x3,y3) ,title('图(3)'),grid on, subplot(2,2,4),plot(x4,y4) ,title('图(4)') ,grid on,

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告 实验一班级:软件131姓名:陈万全学号:132852 一、实验目的 1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。 2、掌握MATLAB常用命令的使用。 3、掌握MATLAB帮助系统的使用。 4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。 二、实验内容 1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。 图1 MATLAB工作桌面 2、MATLAB的常用命令与系统帮助: (1)系统帮助 help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。 lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的

命令後,即可用help进一步找出其用法。 (2)数据显示格式: 常用命令:说明 format short 显示小数点后4位(缺省值) format long 显示15位 format bank 显示小数点后2位 format + 显示+,-,0 format short e 5位科学记数法 format long e 15位科学记数法 format rat 最接近的有理数显示 (3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。 具体用法如下: ↑----重调前一行(可重复使用调用更早的) ↓----重调后一行 →----前移一字符 ←----后移一字符 home----前移到行首 end----移动到行末 esc----清除一行 del----清除当前字符 backspace----清除前一字符 (4)MATLAB工作区常用命令: who--------显示当前工作区中所有用户变量名 whos--------显示当前工作区中所有用户变量名及大小、字节数和类型 disp(x) -----显示变量X的内容 clear -----清除工作区中用户定义的所有变量 save文件名-----保存工作区中用户定义的所有变量到指定文件中 load文件名-----载入指定文件中的数据

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

matlab实验案例,节水洗衣机(优选.)

1 实验案例 (1) 1.1 案例:节水洗衣机 (1) 1.1.1 问题重述与分析 (2) 1.1.2 基本假设及说明 (2) 1.1.3 符号和变量说明 (2) 1.1.4 建模准备 (3) 1.1.5 模型建立 (4) 1.1.6 模型求解 (4) 1.1.7 思考题 (10) 1实验案例 1.1 案例:节水洗衣机 问题:1996年全国赛B题节水洗衣机 我国淡水资源有限,节约用水人人有责,洗衣机在家庭用水中占有相当大的份额,目前洗衣机已非常普及,节约洗衣机用水十分重要。假设在放入衣物和洗涤剂后洗衣机的运行过程为:加水—漂洗—脱水—加水—漂洗—脱水—…—加水—漂洗—脱水(称“加水—漂洗—脱水”为运行一轮)。请为洗衣机设计一种程序(包括运行多少轮、每轮加水量等),使得在满足一定洗涤效果的条件下,总用水量最少。选用合理的数据进行运算,对照目前常用的洗衣机的运行情况,对你的模型和结果出评价。

洗衣机的节水优化模型 摘要本文通过分析洗衣机的洗衣过程,认为是一次性溶解、多次稀释的过程。据此建立非线性规划模型,并利用迭代公式和最优化原理,得出最少用水量的判断公式和代数解。以海棠洗衣机为例,通过对比,利用我们的模型算出的用水量比厂家提供的数据要少,从而说明所建模型的优越性。最后,根据模型解,给出最少用水量与脏衣服的重量的关系图,并从中得出有趣的结论,也给厂家提供一个节约用水的模型。 1.1.1问题重述与分析 对洗衣机的运行进行设计,主要目的是为了节约用水量。在满足洗涤效果的前提下使得用水量最少。因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。 1.1.2基本假设及说明 1.洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量; 2.洗衣机每轮运行过程为:加水-漂洗-脱水; 3.仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释作用; 4.洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢; 5.脱水后的衣服质量与干衣服的重量成正比; 6.每缸洗衣水只用一次; 1.1.3符号和变量说明 A:污物的质量(kg);

MATLAB实验报告

实验一 MATLAB 环境的熟悉与基本运算 一、实验目的及要求 1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容 1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口: 命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。 ②路径的设置: 建立自己的文件夹,加入到MATLAB 路径中,并保存。 设置当前路径,以方便文件管理。 2.学习使用clc 、clear ,了解其功能和作用。 3.矩阵运算: 已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。 4.使用冒号选出指定元素: 已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 6.关系及逻辑运算 1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作 1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num

8.符号运算 1)对表达式f=x 3 -1 进行因式分解 2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求 3(1)x dz z +? 三、实验报告要求 完成实验内容的3、4、5、6、7、8,写出相应的程序、结果

MATLAB数学实验报告

Matlab 数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC 的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

MATLAB)课后实验答案[1]

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 2sin851z e =+ (2) 221ln(1)2 z x x =++,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+= ++=-- (4) 2242011 122123t t z t t t t t ?≤=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。 解:(1) 结果: m=100:999; n=find(mod(m,21)==0); length(n) ans = 43 (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是: ch='ABC123d4e56Fg9'; k=find(ch>='A'&ch<='Z'); ch(k)=[] ch =

matlab实验案例节水洗衣机

1实验案例 (1) 1.1案例:节水洗衣机 (1) 1.1.1问题重述与分析 (2) 1.1.2基本假设及说明 (2) 1.1.3符号和变量说明 (2) 1.1.4建模准备 (3) 1.1.5模型建立 (4) 1.1.6模型求解 (4) 1.1.7思考题 (10) 1实验案例 1.1 案例:节水洗衣机 问题:1996年全国赛B题节水洗衣机 我国淡水资源有限,节约用水人人有责,洗衣机在家庭用水中占有相当大的份额,目前洗衣机已非常普及,节约洗衣机用水十分重要。假设在放入衣物和洗涤剂后洗衣机的运行过程为:加水—漂洗—脱水—加水—漂洗—脱水—…—加水—漂洗—脱水(称“加水—漂洗—脱水”为运行一轮)。请为洗衣机设计一种程序(包括运行多少轮、每轮加水量等),使得在满足一定洗涤效果的条件下,总用水量最少。选用合理的数据进行运算,对照目前常用的洗衣机的运行情况,对你的模型和结果出评价。

洗衣机的节水优化模型 摘要本文通过分析洗衣机的洗衣过程,认为是一次性溶解、多次稀释的过程。据此建立非线性规划模型,并利用迭代公式和最优化原理,得出最少用水量的判断公式和代数解。以海棠洗衣机为例,通过对比,利用我们的模型算出的用水量比厂家提供的数据要少,从而说明所建模型的优越性。最后,根据模型解,给出最少用水量与脏衣服的重量的关系图,并从中得出有趣的结论,也给厂家提供一个节约用水的模型。 1.1.1问题重述与分析 对洗衣机的运行进行设计,主要目的是为了节约用水量。在满足洗涤效果的前提下使得用水量最少。因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。 1.1.2基本假设及说明 1.洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量; 2.洗衣机每轮运行过程为:加水-漂洗-脱水; 3.仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释作用; 4.洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢; 5.脱水后的衣服质量与干衣服的重量成正比; 6.每缸洗衣水只用一次; 1.1.3符号和变量说明 A:污物的质量(kg);

matlab基础实验

实验一 MATLAB基础知识 一、实验目的 1.熟练掌握Matlab的启动与退出; 2. 熟悉Matalb的命令窗口,常用命令和帮助系统; 3. 熟悉Matalb的数据类型; 4. 熟悉Matlab的基本矩阵操作,运算符和字符串处理 二、实验设备 1.方正电脑 2.MATLAB软件 三、实验内容 1. 已知矩阵 A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] 写出完成下列操作的命令: (1) 将矩阵A的第2-5行中第1,3,5列元素赋给矩阵B; (2) 删除矩阵A的第7号元素; (3) 将矩阵A的每个元素加上30; (4) 求矩阵A的大小和维数; (5) 将矩阵A的右下角3*2矩阵构成矩阵C; (6) 输出[-5,5]范围内的所有元素; 程序: A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] %(1) B=A(2:5,[1 3 5]) %(2) A2=A; A2(7)=[] %(3) A3=A+30 %(4) length(A) size(A) %(5) C=A(end-2:end,end-1:end) %(6) A6=A.*(A>=-5 & A<=5) 结果: A =

3 4 -1 1 -9 10 6 5 0 7 4 -16 1 -4 7 -1 6 -8 2 -4 5 -6 12 -8 -3 6 -7 8 -1 1 8 -4 9 1 3 0 B = 6 0 4 1 7 6 2 5 12 -3 -7 -1 A2 = Columns 1 through 7 3 6 1 2 -3 8 5 Columns 8 through 14 -4 -4 6 -4 -1 0 7 Columns 15 through 21 5 -7 9 1 7 -1 - 6 Columns 22 through 28 8 1 -9 4 6 12 -1 Columns 29 through 35 3 10 -16 -8 -8 1 0 A3 = 33 34 29 31 21 40 36 35 30 37 34 14

MATLAB实验报告实例

MATLAB课程设计 院(系)数学与计算机学院 专业信息与计算科学 班级 学生姓名 学号 指导老师赵军产 提交日期

实验内容: 1. Taylor逼近的直观演示用Taylor 多项式逼近y = sin x. 已知正弦函数的Taylor 逼近式为 ∑= - - -- =≈ n k k k k x x P x 1 1 2 1 !)1 2( )1 ( ) ( sin. 实验目的: 利用Taylor多项式逼近y = sin x,并用图形直观的演示。 实验结果报告(含基本步骤、主要程序清单、运行结果及异常情况记录等): 1.将k从1取到5,得到相应的P = x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^9; 2.用MATLAB进行Taylor逼近,取x的范围是(- 3.2,3.2);程序清单如下: syms x; y = sin(x); p = x - (x^3)/6 + (x^5)/120 - (x^7)/5040 + (x^9)/362880 x1 = -3.2:0.01:3.2; ya = sin(x1); y1 = subs(p,x,x1); plot(x1,ya,'-',x1,y1)

4.程序运行正常。 思考与深入: 取y = sin x 的Taylor 多项式为P 的逼近效果很良好,基本接近y = sin x 的图像,不过随着k 的取值变多,逼近的效果会越来越好。 实验内容: 2. 数据插值 在(,)[8,8][8,8]x y =-?-区域内绘制下面曲面的图形: 222 2 sin( )x y z x y += + 并比较线性、立方及样条插值的结果。 .

实验十一,MATLAB模拟

实验十MATLAB模拟 一.实验目的 掌握应用matlab进行离散事件的蒙特卡罗方法模拟的一般原理和过程。 二.实验原理和方法 1.模拟的概念:模拟就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。模拟的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息。 2.数学模拟:在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。现代的数学模拟都是在计算机上进行的,称为计算机模拟。 在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。这时,计算机模拟几乎成为唯一的选择。 蒙特卡洛(Monte Carlo)方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机观察抽样,通过对样本值的观察统计,求得所研究系统的某些参数. 例1.在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点. 经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部消灭敌人. 现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。 分析:这是一个概率问题,可以通过理论计算得到相应的概率和期望值.但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程. 为了能显示我方20次射击的过程,现采用模拟的方式。 1.问题分析:需要模拟出以下两件事: [1] 观察所对目标的指示正确与否 模拟试验有两种结果,每一种结果出现的概率都是1/2. [2] 当指示正确时,我方火力单位的射击结果情况 模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6). 2. 符号假设 i:要模拟的打击次数;k1:没击中敌人火炮的射击总数; k2:击中敌人一门火炮的射击总数;k3:击中敌人两门火炮的射击总数.E:有效射击比率;E1:20次射击平均每次毁伤敌人的火炮数.

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