当前位置:文档之家› Matlab的实际应用设计(经典)

Matlab的实际应用设计(经典)

Matlab的实际应用设计(经典)
Matlab的实际应用设计(经典)

计学院:数学学院

学号:20106496

姓名:黄星奕

辅导老师:陈晓红殷明

实验一

1.1 水手、猴子和椰子问题

一、问题描述

1.1 水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲惫,很快就入睡了。第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只猴子,私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子,试问原先共有几只椰子?

二、思考与实验

试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题。

三、问题分析

用递推算法。首先分析椰子数目的变化规律,设最初的椰子数为p 0,即第一个水手所处理之前的椰子数,用p 1、p 2、p 3、p4、p 5分别表示五个水手对椰子动了手脚以后剩余的椰子数目,则根据问题有

再用x表示最后每个水手平分得到的椰子数,于是有

所以

p5 = 5x +1

利用逆向递推的方法,有

但由于椰子数为一正整数,用任意的x作为初值递推出的p0数据不一定是合适的。在实验中可以用for 循环语句结合break语句来寻找合适的x和p0,对任意的x递推计算出p0,当计算结果为正整数时,结果正确,否则选取另外的x再次重新递推计算,直到计算出的结果p0为正整数为止。

四、源程序

n=input('input n:');

for x=1:n

p=5*x+1;

for k=1:5

p=5*p/4+1;

end

if p==fix(p)

break;

end

end

disp([x,p]);

五、实验结果

六、结果分析

从理论上分析,由于

所以

要使得最初的椰子数p 0为整数,必须取 (x +1) 为 4 5( =1024)的倍数,一种简单的处理可取 x = 1023。

1.2 1

05n

n x I dx x

=+? 一、问题描述

1.2 设,1

05n

n x I dx x

=+? (1)从0I 尽可能精确的近似值出发,利用递推公式:

11

5(1,2,

20)n n I I n n

-=-+=

计算机从1I 到20I 的近似值;

(2)从30I 较粗糙的估计值出发,用递推公式:

111

(30,29,

,3,2)55n n I I n n

-=-+=

计算从1I 到20I 的近似值;

(3)分析所得结果的可靠性以及出现这种现象的原因。

二、问题分析

有种方法可以尽可能地精确的计算0I 的值,我们可以根据积分计算得0I =ln 1.2=0.1823,然后可以编程求解1I 到20I 的近似值。 三、源程序及运行结果 (1) fun=inline('1./(5+x)','x') z=quad(fun,0,1) for n=1:20 z=-5*z+1/n end

z =0.0188 z =0.0169 z =0.0155 z =0.0135

z =0.0156 z =-0.0011 z =0.0770 z =-0.3186 z =1.6554 z =-8.2179 z =41.1453 z =-205.6737

z =1.0284e+003(省略前7项)

(2)fun=inline('(x.^30)./(5+x)','x') z=quad(fun,0,1) for n=30:-1:2 z=-0.2*z+1/(5*n) end

z =0.0130 z =0.0141 z =0.0154 z =0.0169 z =0.0188 z =0.0212 z =0.0243 z =0.0285 z =0.0343 z =0.0431 z =0.0580 z =0.0884

(限于篇幅省略前18项)

四、结果分析

第二种算法较为可靠,原因是迭代时系数较小,第一种方法虽然0I 较精确,但 后面的迭代系数绝对值为5,将误差逐步放大,所以最后结果反而不精确了。 1.3 绘制Koch 分形曲线

一、问题描述

1.3 绘制Koch 分形曲线:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的另两条边代替,形成具有5个结点的新的图形(图1);在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的另两条边代替,再次形成新的图形(图2),这时,图形中共有17个结点。这种迭代继续进行下去可以形成Koch 分形曲线。在迭代过程中,图形中的结点将越来越多,而曲线最终显示细节的多少取决于所进行的迭代次数和显示系统的分辨率。Koch 分形曲线的绘制与算法设计和计算机实现相关。

二、思考与实验:

(1)考虑在Koch 分形曲线的形成过程中结点数目的变化规律。设第k 次迭代产生结点数为k n ,第1k +迭代产生结点数为1k n +,试写出k n 和1k n +之间的递推关系式; (2)参考问题分析中的算法,考虑图1到图2的过程,即由第一次迭代的5个结点的结点坐标数组,产生第二次迭代的17个结点的结点坐标数组的算法;

(3)考虑由第k 次迭代的k n 个结点的结点坐标数组,产生第1k +次迭代的1k n +个结点的结点坐标数组的算法;

(4)设计算法用计算机绘制出如下的Koch 分形曲线(图3)。

图 2

图 3

三、问题分析

①考虑由直线段(2个点)产生第一个图形(5个点)的过程,设1P 和5P 分别为原始直线段的两个端点。现在需要在直线段的中间依次插入三个点234,,P P P 产生第一次迭代的图形(图1)。显然,2P 位于1P 点右端直线段的三分之一处,4P 点绕2P 旋转60度(逆时针方向)而得到的,故可以处理为向量24P P 经正交变换而得到向量23P P ,形成算法如下:

(1)2151()/3P P P P =+-; (2)41512()/3P P P P =+-;

(3)T

3242

()P P P P A =+-?; 在算法的第三步中,A 为正交矩阵。

cos sin

33sin cos

33A ππππ?

?

-??

=?

??????

?

; 这一算法将根据初始数据(1P 和5P 点的坐标),产生图1中5个结点的坐标。这5个结点的坐标数组,组成一个5×2矩阵。这一矩阵的第一行为为1P 的坐标,第二行为1P 的坐标,第二行为2P 的坐标……第五行为5P 的坐标。矩阵的第一列元素分别为5个结点的x 坐标 ,第二列元素分别为5个结点的y 坐标。

②在Koch 分形曲线的形成过程中结点数目的变化规律。设第k 次迭代产生结点数为n k ,第k+1次迭代产生结点数为n k+1,n k 和n k+1之间的递推关系式如下

③由第k 次迭代的n k 个结点的结点坐标数组,产生第k+1次迭代的n k+1个结点的结点坐标数组的算法可参考上面两点到五点的算法进行设计。

四、源程序

p=[0 0;10 0]; %给出初始数据两个点的坐标 a=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %设置用于正交变化的正交矩阵 for k=1:5 %开始执行第一到第五次迭代 n=max(size(p));d=diff(p)/3; %统计前一轮迭代的结点数及形成结点向量 q=p(1:n-1,:);p(5:4:4*n-3,:)=p(2:n,:); %保护前一轮的结点坐标数组 p(2:4:4*n-6,:)=q+d; %插入第一组新结点 p(3:4:4*n-5,:)=p(2:4:4*n-6,:)+d*a'; %用正交变换计算第二组新结点 p(4:4:4*n-4,:)=q+2*d; %插入第三组新结点 end

plot(p(:,1),p(:,2)) %根据结点坐标绘图 五、实验结果

实验二

2.1 用高斯消元法的消元过程作矩阵分解。 一、問題描述

2.1 用高斯消元法的消元过程作矩阵分解。设

20231812315A ??

??=??

??-??

消元过程可将矩阵A 化为上三角矩阵U ,试求出消元过程所用的乘数21m 、31m 、31m 并以

如下格式构造下三角矩阵L 和上三角矩阵U

(1)

(1)212223

(2)

3132331202

31,1L m U a a m m a ????????==???

????????

?

验证:矩阵A 可以分解为L 和U 的乘积,即A =LU 。

二、源程序及運行結果

%将矩阵A 分解为L 和U 的乘积,即A=LU 。 a=input('a=');

u=zeros(3,3);l=eye(3,3); for i=1:3

u(1,i)=a(1,i); end

for j=2:3

l(j,1)=a(j,1)/u(1,1); end

for k=2:3

u(k,k:3)=a(k,k:3)-l(k,1:k-1)*u(1:k-1,k:3);

l(k+1:3,k)=(a(k+1:3,k)-l(k+1:3,1:k-1)*u(1:k-1,k))/u(k,k); end disp(l); disp(u); 实验结果

a=[20,2,3;1,8,1;2,-3,15]

1.0000 0 0 0.0500 1.0000 0 0.1000 -0.4051 1.0000

20.0000 2.0000 3.0000 0 7.9000 0.8500 0 0 15.044311

2.3验证希尔伯特矩阵的病态性 一、问题描述

2.3 验证希尔伯特矩阵的病态性:对于三阶矩阵

1

1/21/31/21/31/41/31/41/5H ????=??

????

取右端向量T

[11/613/1247/60]b =,验证:

(1)向量

T T 12

3[][111]X x x x ==是方程组b =HX 的准确解;

(2)取右端向量b 的三位有效数字得T [1.83 1.080.783]b =,求方程组的准确解*X ,

并与X 的数据T

[111]作比较 。说明矩阵的病态性。

二、源程序及运行结果

(1) H=[1 1/2 1/3;1/2 1/3 1/4;1/3 1/4 1/5]

b=[11/6 13/12 47/60]' H\b ans =

1.0000 1.0000 1.0000

所以

T T 1

2

3[][111]X x x x ==是方程组b =HX 的准确解

(2) b=[1.83 1.08 0.783]' b =

1.8300 1.0800 0.7830 H\b ans =

1.0800 0.5400 1.4400

所算得的解误差较大,所以希尔伯特矩阵呈现病态性

实验三

3.1 用泰勒级数的有限项逼近正弦函数 一、问题描述

3.1 用泰勒级数的有限项逼近正弦函数

013

2353()sin ,[0,](),[0,/2]()/6,[0,/2]()/6/120,[0,/2]

y x x x y x x x y x x x x y x x x x x ππππ=∈=∈=-∈=-+∈

用计算机绘出上面四个函数的图形。 二、源程序

图一

x=0:0.1:pi/2; y1=x;

y2=x-x.^3/6;

y3=x-x.^3/6+x.^5/120; plot(x,y1,x,y2,x,y3)

legend('y=x','y=x-x^3/6','y=x-x^3/6+x^5/120') 图二

x=0:0.1:pi;

y4=sin(x);

plot(x,y4);

legend('y=sin(x)')

三、实验结果

图一

图二

3.2 绘制飞机的降落曲线

一、问题描述

3.2 绘制飞机的降落曲线

一架飞机飞临北京国际机场上空时,其水平速度为540km/h ,飞行高度为1 000m 。飞机从距机场指挥塔的横向距离12 000m 处开始降落。根据经验,一架水平飞行的飞机其降落曲线是一条三次曲线。建立直角坐标系,设飞机着陆点为原点O ,降落的飞机为动点

(,)P x y ,则x 表示飞机距指挥塔的距离,y 表示飞机的飞行高度,降落曲线为

230123()y x a a x a x a x =+++

该函数满足条件:

(0)0,(12000)1000

'(0)0,'(12000)0

y y y y ====

(1)试利用()y x 满足的条件确定三次多项式中的四个系数; (2)用所求出的三次多项式函数绘制出飞机降落曲线。 二、问题分析 由题设得a(0)=a(1)=0 a(2)=1/48000

a(3)=-1/(72000*12000)

三、源程序

fplot(inline('(1/4800)*x.^2-1/(72000*12000)*x^3'),[0,12000])

四、实验结果

3.3 追赶曲线的计算机模拟 一、问题描述

3.3 追赶曲线的计算机模拟:问题描述:欧洲文艺复兴时期的著名人物达?芬奇曾经提出一个有趣的“狼追兔子”问题,当一只兔子正在它的洞穴南面60码处觅食时,一只饿狼出现在兔子正东的100码处。兔子急忙奔向自己的洞穴,狼立即以快于兔子一倍的速度紧追兔子不放。兔子一旦回到洞穴便逃脱厄,问狼是否会追赶上兔子?

这一问题的研究方法可以推广到如鱼雷追击潜艇、地对空导弹击飞机等问题上去。 在对真实系统做实验时,可能时间太长、费用太高、危险太大、甚至很难进行。计算机模拟是用计算机模仿实物系统,对系统的结构和行为进行动态演示,以评价或预测系统的行为效果。根据模拟对象的不同特点,分为确定性模拟和随机性模拟两大类。模拟通常所用的是时间步长法,即按照时间流逝的顺序一步一步对所研究的系统进行动态演示,以提取所需要的数据。 二、思考与实验

(1)设兔子奔跑的速度为01m/s υ=,则狼运动的速度为102υυ=。建立平面直角坐标系,若当k t t =时刻,兔子位于点0(0,)k k Q t υ处,狼位于点(,)k k k P x y 处。试根据k P ,k Q 的坐标确定一个单位向量k e 描述狼在1[,]k k t t +时段内的运动方向。

(2)根据狼的运动方向和速度推导(,)k k k P x y 到111(,)k k k P x y +++的坐标的具体表达式; (3)用计算机绘制追赶曲线的图形(包括静态和动态的图形)。 三、问题分析

首先计算狼的初始位置到兔子洞穴的直线距离:

116.6190D =≈

由于狼奔跑的速度是兔子速度的两倍,兔子跑60码的时间狼可以跑120码。如果狼沿直线奔向兔窝,应该是可以追上兔子的。但是,有人推导出狼在追赶兔子过程中的运动曲线为

31

2

21200()10303

y x x x =-+

根据曲线方程,当0x =时,200/3y =。也就是说,在没有兔窝的情况下兔子一直往北跑,在跑到大约66码处将被狼追上。由此可知,在有兔窝时狼是追赶不上兔子的。

用计算机模拟的方法也可以得到同样的结论。取时间步长为1s ,随时间步长的增加,考虑这一系统中的各个元素(狼和兔子)所处的位置变化规律,用计算机作出模拟。最后,根据第60s 时狼所在的位置的坐标,判断狼是否能追上兔子。

设兔子所在位置为动点 Q ,狼所在位置为动点P 。在时刻 t k ,两个动点的坐标分别为:Q (u k , v k ), P (x k , y k ),动点P 的轨迹就是追赶曲线。在t k 时刻到t k+1 时刻这个时段,P 点的运动方向可以用单位向量描述:

显然,u k = 0,v k = t k。

四、源程序

设在初始时刻兔子和狼的位置分别为

Q(0,0) ,P(100,0)

初始时刻的狼、兔距离为100码,我们不妨规定当狼、兔距离小于0.5码时,兔子被狼追上,结束追赶。下面MATLAB程序可计算并绘制追赶曲线。

x(1)=100;y(1)=0;u(1)=0;v(1)=0;

t=1;d=100;e=[-1 0];

while d>0.5

x(t+1)=x(t)+2*e(1);

y(t+1)=y(t)+2*e(2);

t=t+1;u(t)=0;v(t)=t;

e=[-x(t) t-y(t)];

d=sqrt(e(1)^2+e(2)^2);

e=e/d;

end

plot(u,v,'o',x,y)

五、实验结果

实验四

4.1线性拟合

一、问题描述

曾任英特尔公司董事长的摩尔先生早在1965年时,就观察到一件很有趣的现象:集成电路上可容纳的零件数量,每隔一年半左右就会增长一倍,性能也提升一倍。因而发表论文,提出了大大有名的摩尔定律(Moore’s Law),并预测未来这种增长仍会延续下去。下面数据中,第二行数据为晶片上晶体数目在不同年代与1959年时数目比较的倍数。这些数据是推

试从表中数据出发,推导线性拟合的函数表达式。

二、源程序

x=[0,3,4,5,6];

y=[1,3,4,5,6];

p=polyfit(x,y,1)

p =

0.8302 0.8113

xi=0:0.2:6;

yi=polyval(p,xi);

plot(x,y,'o',xi,yi);

五、实验结果

4.2

问题描述:

参考算法4.2设计绘制Bezier曲线的程序,选取四个点的坐标数据作为控制点绘制飞机机翼剖面图草图的下半部分图形;结合例4.4中上半部分图形绘出完整的机翼草图。最后写出机翼剖面图曲线上20个点处的坐标数据。

源代码及结果:

p=[50 -50;60 -60;100 -80;150 -60;200 -40];

n=size(p,1);

t=linspace(0,1)';

b=0;

for k=0:n-1

tmp=nchoosek(n-1,k)*t.^k.*(1-t).^(n-1-k);

b=b+tmp*p(k+1,:);

end

plot(p(:,1),p(:,2),'.:',b(:,1),b(:,2))

4.3 神经元模型用于蠓的分类识别

一、问题描述

问题描述:生物学字试图对两类蠓虫(Af与Apf)进行鉴别,依据的资料是蠓虫的触角和翅膀的长度,已经测得9只Af和6只Apf的数据(触角长度用x表示,翅膀长度用y表示)

现需要解决三个问题:(1)如何凭借原始资料(15对数据,被称之为学习样本)制定一种方法,正确区分两类蠓虫;(2)依据确立的方法,对题目提供的三个样本:(1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别;(3)设Af 是宝贵的传粉益虫,Apf 是某种疾病的载体,是否应该修改分类方法。 二、问题分析

问题分析:首先画出15对数据的散点图,其中,Af 用*标记,Apf 用×标记。观察图形,可以发现,Af 的点集中在图中右下角,而Apf 的点集中在图中左上角。应该存在一条直线L 位于两类点之间,作为Af 和Apf 分界线,这条直线L 的确定应依据问题所给的数据,即学习样本。设这条直线的方程为

1200x y ωωω++=

对于平面上任意一点P (x,y ),如果该点在直线上,将其坐标代入直线方程则使方程成为恒等式,即使方程左端恒为零;如果点(,)P x y 不在直线上,将其坐标代入直线方程,则方程左端不为零。由于Af 和Apf 的散点都不在所求的直线上,故将问题所提供的数据代入直线方程左端应该得到表达式的值大于零或者小于零两种不同的结果。

这需要建立一个判别系统,引入判别函数((,))g P x y ,当(,)P x y 属于Af 类时,

((,))0g P x y >,否则((,))0g P x y <。

为了对判别系统引入学习机制,在学习过程中将两种不同的状态,以“1”和“-1”表示。当(,)P x y 属于Af 类时,((,))1g P x y =,否则((,))1g P x y =-。 取

120((,))g P x y x y ωωω=++

于是由所给数据形成约束条件,这是关于判别函数中的三个待定系数012,,ωωω的线性方程组:

1201201,(1,2,,9)

1,(10,,15)j j j

j x y j x y j ωωωωωω++==??

++=-=? 这是包括三个未知数共15个方程的超定方程组,可以求方程组的最小二乘解。 三、思考与实验:

(1)根据上面分析写出对应的正规方程组并求解。

(2)确定分类边界直线的方程。由所给数据用判别函数判别三个新蠓虫的类属,即当

((,))0g P x y >时,判为Af 类:当((,))0g P x y <时,判为Apf 类。

四、源程序

xy=[1.24 1.27;1.36 1.74;1.38 1.64;1.38 1.82;1.38 1.90; 1.40 1.70;1.48 1.82;1.54 1.82;1.56 2.08;1.14 1.78;

1.18 1.96;1.20 1.86;1.26

2.00;1.28 2.00;1.30 1.96];

%学习样本数据

z=[1;1;1;1;1;1;1;1;1;-1;-1;-1;-1;-1;-1];

x=xy(:,1);y=xy(:,2);x1=x(1:9);y1=y(1:9);x2=x(10:15);y2=y(10:15);

plot(x1,y1,'*',x2,y2,'x'),pause %绘制原始数据散点图

X=[x y ones(x)];

A=X'*X;B=X'*z;w=A\B; %求解正规方程组a=-w(1)/w(2);b=-w(3)/w(2);

t=1.10:0.02:1.60;u=a*x+b ; %确定分类直线数据plot(x1,y1,'*',x2,y2,'x',t,u) %在散点图中画分类直线

五,实验结果

六、结果分析

运行上面程序可求出超定方程组的最小二乘解并画出分类边界曲线。为了由所给数据用判别

函数判别三个新蠓虫的类属,即当时,判为Af 类;当时,判为Apf 类。运行上面程序后,键入下面命令

xx=[1.24 1.80 1;1.28 1.84 1;1.40 2.04 1];

xx*w

plot(t,u,xx(:,1),xx(:,2),'o')

求得

ans = -0.3877 -0.2384 -0.0235

这说明,所给数据反映出三个蠓虫均属于Apf 类。

实验五 5.1用几种不同的方法求积分1

204

1dx x +?的值。

一、问题描述

5.1 用几种不同的方法求积分

1

204

1dx x +?的值。

(1)牛顿-莱布尼茨公式;(2)梯形公式;(3)辛卜生公式;(4)复合梯形公式。。 二、源程序及运行结果

fun=inline('4./(1+x.^2)','x') fun =

Inline function: fun(x) = 4./(1+x.^2) (1)牛顿-莱布尼茨公式 syms x;

z1=int(4./(1+x.^2),x,0,1) z1= pi z1 = pi z1 = 3.1416

(2)梯形公式

z2=1/2*[fun(0)+fun(1)] z2 = 3

(3) 辛卜生公式

z3=1/6*[fun(0)+4*fun(0.5)+fun(1)] z3 = 3.1333

(4) 复合梯形公式

z4=0.05*[fun(0)+2*fun(0.1)+2*fun(0.2)+2*fun(0.3)+2*fun(0.4)+2*fun(0.5)+2*fun(0.6)+2*fun(0.7)+2*fun(0.8)+2*fun(0.9)+fun(1)] z4 = 3.1399 或者

clear;x=0:0.1:1;y=4./(1+x.^2);trapz(x,y) ans = 3.1399

5.2 设计算法计算30个不同的概率值

一、问题描述

5.2 设X 为标准正态随机变量,即X~N (0,1)。现分别取0.1,0.2,0.3,

,2.9,3.0u =,

试设计算法计算30个不同的概率值;{}a P X u >,并将计算结果与概率论教科书中的标准正态分布函数表作比较。

(提示: {

}224

2

2

)a

a

x x a u u P X u e

dx e

dx +∞

-

-

>=

?

二、源程序

fun=inline('exp(-x.^2/2)/sqrt(2*pi)'); a=0;h=0.1; for k=1:30 a=a+h;

p=quad(fun,a,4) end

三、实验结果 p = 0.4601 p = 0.4207 p = 0.3821 p = 0.3445 p = 0.3085 p = 0.2742 p = 0.2419 p = 0.2118 p = 0.1840 p = 0.1586

5.3 设某城市男子的身高X~N (170,36)(单位:cm ),应如何选择公共汽车门的高度H 使男子与车门碰头的机会小于1%。

问题分析:由题设男子身高数据服从平均值为170(cm ),方差为6(cm )的正态分布,其分布密度函数为

2(170)()236x f x ??--=??

???

p = 0.0178 p =

0.0139 p =

0.0107 p =

0.0082 p =

0.0062 p =

0.0046 p =

0.0034 p =

0.0025 p =

0.0018 p =

0.0013

p = 0.1356 p = 0.1150 p = 0.0968 p = 0.0807 p = 0.0668 p = 0.0548 p = 0.0445 p = 0.0359 p = 0.0287 p = 0.0227

按正态分布的分布规律(3σ原则),这个城市的男子身高超过188(cm )的人数极少。故可以对H=188,187,186,…求出概率

{}

P X H >的值,观察使概率不超过1%的H ,以

确定公共汽车门应该取的高度。概念值的计算实际上是求定积分

{}194

()()H

H

P X H f x dx f x dx

+∞

>=≈?

?

(1)选用一种数值求积公式或用数学软件分别计算出H=180、181、…、188时定积分近似值。

(2)根据上面计算的积分值,按题目要求确定公共汽车门的高度取值(答案184cm )。如果将汽车门的高度取180cm ,是否满足大多数市民的利益?

(3)用计算机模拟的方法来检验你的结论,计算机产生10 000个正态随机数(它们服从均值为170,方差为6的正态分布)来模拟这个城市中10 000个男子的身高,然后统计出这10 000人中身高超过180(cm )的男子数量所占的百分比。 解:

程序如下:

(1)fun=inline('exp(-1*((x-170).^2)/(2*36))/(6*pi*sqrt(2))'); for k=180:188 p=quad(fun,k,194) end (2)

结果如下:

H=180、181、…、188时定积分近似值如下: p =0.0269 p =0.0188 p =0.0128 p =0.0085 p =0.0055 p =0.0035 p =0.0021 p =0.0013

p =7.4373e-004 p =0.0269 p =0.0188 p =0.0128 p =0.0085 p =0.0055 p =0.0035 p =0.0021 p = 0.0013

p =7.4373e-004 (3) 2,程序如下: n=10000;

r=170+6*randn(n,1);

Matlab程序设计教程第二版刘卫国课后参考答案(供参考)

第二章 1 求下列表达式的值。 (1) w=sqrt(2)*(1+0.34245*10^(-6)) (2) a=3.5; b=5; c=-9.8; x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/tan(b+c)+a (3) a=3.32; b=-7.9; y=2*pi*a^(2)*[(1-pi/4)*b-(0.8333-pi/4)*a] (4) t=[2,1-3*i;5,-0.65]; z=1/2*exp(2*t)*log(t+sqrt(1+t^(2))) 2 求下列表达式 A=[-1,5,-4;0,7,8;3,61,7]; B=[8,3,-1;2,5,3;-3,2,0]; (1) A+6*B A^2-B+eye (2) A*B A.*B B.*A (3) A/B B\A (4) [A,B] [A([1,3],:);B^2] 3 根据已知,完成下列操作 (1) A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; K=find(A>10&A<25); A(K) (2) A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C (3) E

2 用if语句 score=input('请输入成绩:'); if score>=90&&score<=100 disp('A'); elseif score>=80&&score<=89 disp('B'); elseif score>=70&&score<=79 disp('C'); elseif score>=60&&score<=69; disp('D'); elseif score<60&&score>=0; disp('E'); else disp('出错'); end 用switch语句 score=input('请输入成绩:'); switch fix(score/10) case {9,10} disp('A'); case {8} disp('B'); case {7} disp('C'); case {6} disp('D'); case {0,1,2,3,4,5} disp('E'); otherwise disp('出错'); end 第四章1题 1) X=0:10; Y=x-x.^3/6; P lot(x,y) 2) t=0:0.01:2*pi; x=8.*cos(t); y=4*sqrt(2).*sin(t); plot(x,y) 2题

matlab课程设计题目

课题一: 连续时间信号和系统时域分析及MATLAB实现 课题要求: 深入研究连续时间信号和系统时域分析的理论知识。利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。 1、单位阶跃信号, 2、单位冲激信号, 3、正弦信号, 4、实指数信号, 5、虚指数信号, 6、复指数信号。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘, 4、微分, 5、积分 三、用MATLAB实现信号的时域变换(参数变化,分析波形变化) 1、反转, 2、使移(超时,延时), 3、展缩, 4、倒相, 5、综合变化 四、用MATLAB实现信号简单的时域分解 1、信号的交直流分解, 2、信号的奇偶分解 五、用MATLAB实现连续时间系统的卷积积分的仿真波形 给出几个典型例子,对每个例子,要求画出对应波形。 六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。 给出几个典型例子,四种调用格式。 七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题二: 离散时间信号和系统时域分析及MATLAB实现。 课题要求: 深入研究离散时间信号和系统时域分析的理论知识。利用MATLAB强大的图

形处理功能、符号运算功能以及数值计算功能,实现离散时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域特性) 1、单位序列, 2、单位阶跃序列, 3、正弦序列, 4、离散时间实指数序列, 5、离散时间虚指数序列, 6、离散时间复指数序列。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘。 三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化) 1、反转, 2、时移(超时,延时), 3、展缩, 4、倒相。 四、用MATLAB实现离散时间系统卷积和仿真波形 给出几个典型例子,对每个例子要求画出e(k),h(k),e(i),h(i),h(-i),Rzs(k)波形。 五、用MATLAB实现离散时间系统的单位响应,阶跃响应的仿真波形 给出几个典型例子,四中调用格式。 六、用MATLAB实现离散时间系统对实指数序列信号的零状态响应的仿真波形 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题三: 连续时间信号傅里叶级数分析及MATLAB实现。 课题要求: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。 课题内容: 一、用MATLAB实现周期信号的傅里叶级数分解与综合 以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形 波形之间的关系及吉布斯现象。

MATLAB课程设计报告 基于MATLAB GUI 的滤波器设计软件

MATLAB课程设计报告 基于MATLAB GUI的“滤波器设计软件”设计

摘要 面对庞杂繁多的原始信号, 如何提取所需信号、抑制不需要的信号这就需要使用滤波器。滤波器的作用主要是选择所需频带的信号内容而抑制不需要的其他频带的信号内容。数字滤波器因其精度高、可靠性好、灵活性大等优点, 在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像处理等工程实际应用中都很广泛。根据其冲击响应函数的时域特性可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。作为强大的计算软件, MATLAB 提供了编写图形用户界面的功能。所谓图形用户界面, 简称为GUI, 是由各种图形对象, 如图形窗口菜单按钮、文本框等构建的用户界面。 MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。 关键词:MATLAB GUI IIR滤波器FIR滤波器

目录 1设计任务 (1) 2 MATLAB GUI的简介 (2) 3 滤波器设计原理 (3) 3.1滤波器概述 (3) 3.2 IIR数字滤波器 (4) 3.2.1 IIR数字滤波器设计原理 (4) 3.2.2 IIR滤波器设计思想 (5) 3.2.3 IIR滤波器设计编程实现 (6) 3.3 FIR数字滤波器 (8) 3.3.1 FIR数字滤波器设计原理 (8) 3.3.2 FIR滤波器设计思想 (9) 4 基于Matlab GUI的数字滤波器设计思路及实现 (12) 4. 1 GUI界面设计概述 (12) 4.2 “滤波器设计软件”设计所实现任务 (14) 4.3 基于Matlab GUI的数字滤波器设计实现 (16) 4.3.1 “滤波器设计软件”GUI界面设计 (16) 4.3.2 “滤波器设计软件”回调函数编写 (17) 4.3.3AutoChoose.m程序的编写 (22) 4.4 运行和结果显示 (28) 5 设计总结和心得 (33) 5.1 设计总结 (33) 5.2 设计心得 (34) Abstract (35) 参考文献 (36) 附录

MATLAB课设报告

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

Matlab课程设计报告

自控系统仿真软件课程设计报告 MATLAB 设计题目:牛顿摆球 姓名: 学号: 院系: 班级:1203 指导教师: 2014年12月20日

一.课程设计目的 1、熟悉课程设计的基本流程; 2、掌握MATLAB语法结构及调试方法; 3、熟悉MATLAB函数调用,熟练二维画图; 4、掌握MATLAB语言在控制方面的运用; 5、学会用MATLAB进行基本仿真; 6、掌握MATLAB编程技巧,提高编程水平。 二.系统分析 1.题目的描述: (1)牛顿摆球原理描述 五个质量相同的球体由吊绳固定,彼此紧密排列。当摆动最右侧的球并在回摆时碰撞紧密排列的另外四个球,最左边的球将被弹出,并仅有最左边的球被弹出。当然此过程也是可逆的,当摆动最左侧的球撞击其它球时,最右侧的球会被弹出。当最右侧的两个球同时摆动并撞击其他球时,最左侧的两个球会被弹出。同理相反方向同样可行,并适用于更多的球。 为了更接近现实,在这里我将考虑重力及空气阻力的影响,摆球将不会永无止境的运动下去,由于外界因素的影响,摆球运动一段时间后将回归静止状态。(2)通过MATLAB动画程序制作软件,实现下述过程 当运行程序时,把最右边的小球拉到一定的高度放下,让其碰撞其余四个小球,仅让最左边的小球被弹出,当最左边小球回摆碰撞其它球时,最右边小球又被弹出,如此循环。由于是非理想条件下,摆球的摆动幅度会随摆动次数的增加越来越小,直到静止。 时间停顿两秒,把右边两小球一起拉到一定高度放下,让其碰撞其余三个球,同样仅让左边两球被弹出,当球回摆再次碰撞时,最右边两球又被同时弹出,如此循环,因为外界因素的影响,最终五个球都会静止下来。 (3)整个实验看似简单,但要在MATLAB上完成这样一个动画过程,还是需要下点功夫,克服困难的。经过自己的努力,终于实现了整个过程,这也是一种不小的收获。 2.设计要求: (1)能够实现有阻尼摆动,即摆幅随摆动次数增加越来越小,直到静止。(2)能够让摆球弧线摆动。 三.系统设计 1.系统设计过程 (1)通过函数axis建立坐标系 (2)在坐标系范围内通过函数line画各个支架 (3)通过函数title添加标题“动量守恒实验”、函数text添加标注“牛顿摆球” (4)通过函数line画出五个球,并设定其初始位置,颜色,大小,线条的擦拭方式

matlab课程设计拟定题目

第一类:单位转换 1.长度单位换算的设计与实现 2.面积单位换算的设计与实现 3.体积单位换算的设计与实现 4.容积单位换算的设计与实现 5.质量单位换算的设计与实现 6.时间单位换算的设计与实现 7.温度单位换算的设计与实现 7.压强单位换算的设计与实现 8.角度单位换算的设计与实现 8.功率单位换算的设计与实现 第二类:曲线绘制 1.直线的自动绘制和相关计算 2.椭圆的自动绘制和相关计算 3.双曲线的自动绘制和相关计算 4.抛物线的自动绘制和相关计算 5.心脏线的自动绘制和相关计算 6.渐开线的自动绘制和相关计算 7.滚圆线的自动绘制和相关计算 8.三叶玫瑰线的自动绘制和相关计算9.四叶玫瑰线的自动绘制和相关计 10.阿基米德螺线的自动绘制和相关计算第三类:曲面绘制 1.球面的自动绘制和相关计算 2.椭球面的自动绘制和相关计算 3.单叶双曲面的自动绘制和相关计算 4.双叶双曲面的自动绘制和相关计算 5.抛物面的自动绘制和相关计算 6.双曲抛物面的自动绘制和相关计算 7.双曲柱面的自动绘制和相关计算 8.椭圆柱面的自动绘制和相关计算 9.抛物柱面的自动绘制和相关计算 10.圆锥面的自动绘制和相关计算 第四类:线性回归 1.男士身高体重相关计算经验公式 2.女士身高体重相关计算经验公式 3.男士胖瘦等级的确定 4.女士胖瘦等级的确定 5.男士身高脚长相关计算经验公式 6.女士身高脚长相关计算经验公式 7.父子身高相关性研究 8.母子身高相关性研究 9.父女身高相关性研究 10.母女身高相关性研究 第五类:学习成绩 1.期末总评自动计算的设计与实现 2.成绩等级自动评定的设计与实现 3.成绩分段自动统计的设计与实现 4.成绩分布折线自动绘制的设计与实现 5.成绩自动统计分析的设计与实现 6.试卷分布自动分析的设计与实现 7.试卷难度自动分析的设计与实现 8.考试成绩名次自动生成的设计与实现

MATLAB程序设计课程设计

Matlab课程设计 题目: 二、利用混合空间法增强锐化图像仿真 将原始图像增强,最终增强为如下类似图像 。 可参考如下过程

源程序: clc clear all %读取图像 J=imread('E:\工作台\MATLAB\2016课程设计\仿真2附件 \Fig0343(a)(skeleton_orig).tif'); %拉普拉斯变换得到M1 [m,n]=size(J); I=im2double(J); h1=[0,-1,0;-1,4,-1;0,-1,0]; M1=imfilter(I,h1); %与原图相加得到M2,锐化原图 M2=M1+I; %sobel算子运算结果得到M3,保留边缘去除噪声 h2=[1,0,-1;2,0,-2;1,0,-1]; h3=[-1,-2,-1;0,0,0;1,2,1]; Sx=imfilter(I,h2); Sy=imfilter(I,h3); for i=1:m for j=1:n M3(i,j)=sqrt((Sx(i,j))^2+(Sy(i,j))^2); end end %作3*3模板的均值平滑 M4=zeros(m,n); for x=2:m-1 for y=2:n-1 for a=-1:1 for b=-1:1 M4(x,y)=(M4(x,y)+M3(x+a,y+b))/9; end end end end for c=1:m for d=1:n M4(c,1)=M3(c,1); M4(1,d)=M3(1,d); end end %作幂次变换,提升亮度2倍,提升对比度 for e=1:m for f=1:n

M5(e,f)=M2(e,f)*M4(e,f); end end M6=I+M5; for g=1:m for h=1:n M7(g,h)=2*(M6(g,h))^1.15; end end subplot(241);imshow(I); subplot(242);imshow(M1); subplot(243);imshow(M2); subplot(244);imshow(M3); subplot(245);imshow(M4); subplot(246);imshow(M5); subplot(247);imshow(M6); subplot(248);imshow(M7); 分析: 1.读取图像 2.利用 Laplacian 变换得到M1,在与原图相处理得到锐化的图像 3.用 Sobel 算子运算,保留边缘去除噪声 4.用3*3的模板均值平滑化图像 5.用幂律定理,提高图像亮度,提高对比度

matlab课程设计题目全

Matalab课后作业 学院:电气信息工程及其自动化 班级: 学号: 姓名: 完成日期: 2012年12月23日

1、 matlab 软件主要功能是什么?电气工程及其自动化专业本科生主要用到哪 些工具箱,各有什么功能? 答:(1)主要功能:工业研究与开发; 数学教学,特别是线性代数;数值分析和科学计算方面的教学与研究;电子学、控制理论和物理学等工程和科学学科方面的教学与研究; 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究;符号计算功能;优化工具;数据分析和可视化功能;“活”笔记本功能;工具箱;非线性动态系统建模和仿真功能。 (2)常用工具箱: (a ) MATLAB 主工具箱:扩充matlab 的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能。 (b )符号数学工具箱:符号表达式、符号矩阵的创建;符号可变精度求解;因式分解、展开和简化;符号代数方程求解;符号微积分;符号微分方程。 (c ) SIMULINK 仿真工具箱: Simulink 是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink 提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。 (d )信号处理工具箱:数字和模拟滤波器设计、应用及仿真;谱分析和估计;FFT 、DCT 等 变换;参数化模型。 (e )控制系统工具箱:连续系统设计和离散系统设计;状态空间和传递函数以及模型转换;时域响应(脉冲响应、阶跃响应、斜坡响应);频域响应(Bode 图、Nyquist 图);根轨迹、极点配置。 2、设y=23e t 4-sin(43t+3 ),要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 程序如下: clc clear x=0:0.01:1.5; y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3); y1=diff(y); subplot(2,1,1) plot(x,y) subplot(2,1,2) plot(x(1:150),y1) 曲线如下图所示:

MATLAB仿真课程设计

电气工程工具软件课程设计-MATLAB 学号:3100501044 班级:电气1002 姓名:王辉军 指导老师:乔薇 2014年1月16日

课程设计任务:构建一个含有PID控制器的系统,观察 K(比例系数)、 p K(积分系数)、d K(微分系数)不同值时系统的变化。 i (Continuous模块库中的Zero-Pole模块)输入为阶跃函数 一.建立含有pid子系统的系统模型 (1)选用器件搭建电路 图1-1 图1-2 (2)构建PID控制器 图1-3

(3)上述结构图封装成PID控制器 ①创建子系统。选中上述结构图后再选择模型窗口菜单“Edit/Creat Subsystem” ②封装。选中上述子系统模块,再选择模型窗口菜单“Edit/Mask Subsystem” ③根据需要,在封装编辑器对话框中进行一些封装设置,包括设置封装文本、对话框、图标等。本次试验主要需进行以下几项设置:Icon(图标)项:“Drawing commands”编辑框中输入“disp(‘PID’)”,如下 左图示:Parameters(参数)项:创建Kp,Ki,Kd三个参数,如下右图示 图1-4 图1-5

(4)搭建单一回路系统结构框图如下图 图1-6 所需模块及设置:Sources模块库中Step模块;Sinks模块库中的Scope 模块;Commonly UsedBlocks模块库中的Mux模块;Continuous模块库中的Zero-Pole模块。Step模块和Zero-Pole模块设置如下: 图1-7 图1-8

二.比较以下参数的结果:(把各个仿真波形图截图标注) 图2-1 如上图可更改Kp,Ki,Kd的值以实现以下要求: (1)Kp=8.5,Ki=5.3,Kd=3.4 图2-2 (2)Kp=6.7,Ki=2,Kd=2.5

MATLAB课程设计报告图像处理

一.课程设计相关知识综述...................................................................... 1.1 研究目的及意义 (3) 1.2 数字图像处理研究的内容........................................................... 1.3 MATLAB 软件的介绍.................................................................. 1.3.1 MATLAB 语言的特点......................................................... 1.3.2 MATLAB 图像文件格式.................................................... 1.3.3 MATLAB 图像处理工具箱简介........................................ 1.3.4 MATLAB 中的图像类型.................................................... 1.3.5 MATLAB 的主要应用........................................................ 1.4 函数介绍........................................................................................ 二.课程设计内容和要求........................................................................... 2.1 主要研究内容................................................................................ 2.2 具体要求....................................................................................... 2.3 预期达到的目标........................................................................... 三.设计过程............................................................................................... 3.1 设计方案及步骤............................................................................ 3.2 程序清单及注释........................................................................... 3.3 实验结果........................................................................................ 四.团队情况................................................................................................ 五.总结....................................................................................................... 六.参考文献............................................................................................... 一.课程设计相关知识综述. 1.1研究目的及意义

MATLAB课程设计

二阶弹簧—阻尼系统的PID 控制器设计及其参数整定 班级:电控(中荷),学号:200710234***,姓名:包艳 1 前 言 PID 控制器结构简单,其概念容易理解,算法易于实现,且具有一定的鲁棒 性,因此,在过程控制领域中仍被广泛使用,除非在特殊情况下证明它不能满足既定的性能要求。对于单输入单输出的系统,尤其是阶跃响应单调变化的低阶对象,已有大量的PID 整定方法及其比较研究。当对象的阶跃响应具有欠阻尼特性时,如果仍近似为惯性对象,被忽略的振荡特性有可能引起控制品质的恶化。现有的一些针对二阶欠阻尼对象的PID 整定方法,例如极点配置方法,幅值相位裕量方法等,尽管在各自的假设前提下取得了较好的控制效果,但并非适用于所有的二阶欠阻尼对象,其性能鲁棒性问题也有待讨论。 本文通过使用MATLAB 对二阶弹簧—阻尼系统的控制器(分别使用P 、PI 、PID 控制器)设计及其参数整定,定量分析比例系数、积分时间与微分时间对系统性能的影响。同时,掌握MATLAB 语言的基本知识进行控制系统仿真和辅助设计,学会运用SIMULINK 对系统进行仿真,掌握PID 控制器参数的设计。 2 研究的原理 积分(I )控制具有积分控制规律的控制称为积分控制,即I 控制,I 控制的传递函数为: s s K G i C = )(。其中, Ki 称为积分系数。控制器的输出信号为:

U(t)= ?t I t e K )( dt。或者说,积分控制器输出信号u(t) 的变化速率与输入信号e(t) 成正比,即: )( )( t e dt t du K I = 。 对于一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个系统是有稳态误差的或简称有差系统.为了消除稳态误差,在控制器必须引入”积分项”.积分项对误差取决于时间的积分,随着时间的增加,积分项会增大使稳态误差进一步减小,直到等于零. 通常,采用积分控制器的主要目的就是使用系统无稳态误差,由于积分引入了相位滞后,使系统稳定性变差,增加积分器控制对系统而言是加入了极点,对系统的响应而言是可消除稳态误差,但这对瞬时响应会造成不良影响,甚至造成不稳定,因此,积分控制一般不单独使用,通常结合比例控制器构成比例积分(PI)控制器.

MATLAB程序设计及经典例题解析3

MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

MATLAB课程设计任务书

课程设计任务书 学生姓名:专业班级:电信 指导教师:工作单位:信息工程学院 题目:MATLAB运算与应用设计2 初始条件: 1.MATLAB6.5以上版本软件; 2.课程设计辅导资料:“MATLAB语言基础及使用入门”、“MATLAB及在电子信息课程中的 应用”等; 3.先修课程:信号与系统、数字信号处理、MATLAB应用实践及信号处理类课程等。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说 明书撰写等具体要求) (1)选择一本《MATLAB教程》,学习该教程的全部内容,包括使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容; (2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。 (3)对实验结果进行分析和总结; (4)要求阅读相关参考文献不少于5篇; (5)根据课程设计有关规范,按时、独立完成课程设计说明书。 时间安排: (1) 布置课程设计任务,查阅资料,学习《MATLAB教程》十周; (2) 进行编程设计一周; (3) 完成课程设计报告书一周; 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 1 MATLAB概述 (3) 1.1MATLAB简介 (4) 1.2MATLAB的功能 (4) 1.3MATLAB 的典型应用 (6) 2设计题目:MATLAB运算与应用设计套题二 (6) 3设计内容 (8) 3.1 题一 (8) 3.2 题二 (8) 3.3 题三 (9) 3.4 题四 (10) 3.5 题五 (15) 3.6 题六 (15) 3.7 题七 (15) 3.8 题八 (16) 3.9 题九 (17) 3.10题十 (18) 4 课程设计心得 (20) 5参考文献 (21) 6 本科生课程设计成绩评定表 (22)

MATLAB课程设计实验体会

课程设计实验体会 学生姓名:李祥胜 学生学号:20120704 专业班级:光信息科学与技术 指导老师:miss Chen 学院:信息工程学院 题目: MATLAB学期实验总结

MATLAB概念及介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 1.1、MATLAB语言特点及优势 1.1.1、语言特点 MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB 给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。 (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。 (3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。 (4)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

矩量法matlab程序设计实例

矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布

matlab习题(课程设计)

1. 已知矩阵????????????????=5432141097539108627810715675A ,矩阵????? ?? ?????????=60151403514436136349624B ,解线性方程X ,使得A.X=B ,并将矩阵A 的右下角2×3子矩阵赋给矩阵C 。 程序:A=sym([5,7,6,5,1;7,10,8,7,2;6,8,10,9,3;5,7,9,10,4;1,2,3,4,5]); B=sym([24,96;34,136;36,144;35,140;15,60]); X=A\B C=A([4,5],[3,4,5]) 运行结果:X = [ 1, 4] [ 1, 4] [ 1, 4] [ 1, 4] [ 1, 4] C = [ 9, 10, 4] [ 3, 4, 5] 2. 根据下面两个矩阵 ???? ??????=??????????=987654321,136782078451220124B A 执行下列的矩阵运算命令,并回答有关的问题 (1) A+5*B 和A-B+I 分别是多少(其中I 为单位矩阵)? (2) A.*B 和 A*B 将分别给出什么结果,它们是否相同,为什么? 得出A.^B 、A/B 及A\B 的结果,并分别解释它们的物理意义。 程序:A=[4,12,20;12,45,78;20,78,136]; B=[1,2,3;4,5,6;7,8,9]; I=[1,0,0;0,1,0;0,0,1]; C=A+5*B D=A-B+I E=A.*B

F=A*B G=A.^B H=A/B J=A\B A=sym([4 12 20;12 45 78;20 78 136]); B=sym([1 2 3;4 5 6;7 8 9]); I=sym([1 0 0;0 1 0; 0 0 1]); A+5*B A-B+I A.*B %A.为A的共轭矩阵,本式为A的共轭矩阵和B相乘 A*B %A直接和矩阵B相乘,结果与上面显然不同 A.^B %A的共轭矩阵的B次方 A/B %右除解XB=A A\B %左除解AX=B 运行结果: ans = [ 9, 22, 35] [ 32, 70, 108] [ 55, 118, 181] ans = [ 4, 10, 17] [ 8, 41, 72] [ 13, 70, 128] ans = [ 4, 24, 60] [ 48, 225, 468] [ 140, 624, 1224] ans = [ 192, 228, 264] [ 738, 873, 1008] [ 1284, 1518, 1752]

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

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