MATLAB在实际生活中的应用小论文Word文档格式.docx

上传人:b****3 文档编号:17548175 上传时间:2022-12-07 格式:DOCX 页数:15 大小:318.38KB
下载 相关 举报
MATLAB在实际生活中的应用小论文Word文档格式.docx_第1页
第1页 / 共15页
MATLAB在实际生活中的应用小论文Word文档格式.docx_第2页
第2页 / 共15页
MATLAB在实际生活中的应用小论文Word文档格式.docx_第3页
第3页 / 共15页
MATLAB在实际生活中的应用小论文Word文档格式.docx_第4页
第4页 / 共15页
MATLAB在实际生活中的应用小论文Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

MATLAB在实际生活中的应用小论文Word文档格式.docx

《MATLAB在实际生活中的应用小论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB在实际生活中的应用小论文Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

MATLAB在实际生活中的应用小论文Word文档格式.docx

计算结果显示为:

T=11.5813

即所花费的时间为T=11.5813年。

分析:

上面的问题是一个利用公式直接进行赋值计算问题,实际中若变量在某个范围变化取很多值时,使用MATLAB,将倍感方便,轻松得到结果,其绘图功能还能将结果轻松的显示出来,变量之间的变化规律将一目了然。

若r在[1,9]变化,i在[0.5,3.5]变化;

我们将MATLAB的表达式作如下改动,结果如图1。

r=1:

0.5:

9;

i=0.5:

3.5;

p=1./(n*log(1+0.01*i));

T=log(r'

)*p;

Plot(r,T)

Label('

r'

)%给x轴加标题

label('

T'

)%给y轴加标题

q=ones(1,length(i);

text(7*q-0.2,[T(14,1:

5)+0.5,T(14,6)-0.1,T(14,7)-0.9],num2str(i'

))

图1

从图1中既可以看到T随r的变化规律,而且还能看到i的不同取值对T—r曲线的影响(图中的六条曲线分别代表i的不同取值)。

二、已知多项式求根

已知多项式为

,求其根。

对多项式求根问题,我们常用roots()函数。

h=roots([1-1031-10-116200-96])%中括号内为多项式系数由高阶到常数。

计算结果显示为(其中i为虚数单位):

h=

-2.0000

4.0000

3.0000

2.0000+0.0000i

2.0000-0.0000i

1.0000

如果已知多项式的根,求多项式,用poly()函数。

对上面得到的h的值求多项式,其MATLAB的表达形式及结果如下:

h=[-2.00004.00003.00002.0000+0.0000i2.0000-0.0000i1.0000];

c=poly(h)

c=

1-1031-10-116200-96

三、方程组的求解

求解下面的方程组:

对于线性方程组求解,常用线性代数的方法,把方程组转化为矩阵进行计算。

a=[816;

357;

492];

%建立系数矩阵

b=[7.5;

4;

12];

%建立常数项矩阵

x=a\b%求方程组的解

x=

1.2931

0.8972

-0.6236

四、数据拟合与二维绘图

在数学建模竞赛中,我们常会遇到这种数据表格问题,如果我们仅凭眼睛观察,很难看到其中的规律,也就更难写出有效的数学表达式从而建立数学模型。

因此可以利用MATLAB的拟合函数,即prolific()函数,并结合MATLAB的绘图功能(利用plot()函数),得到直观的表示。

例:

在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如下表:

T(分)

1

2

3

4

5

6

7

8

y

6.4

8.0

8.4

9.28

9.5

9.7

9.86

9

10

11

12

13

14

15

16

10.2

10.32

10.42

10.5

10.55

10.58

10.6

 

MATLAB的表达形式如下:

t=[1:

16];

%数据输入

y=[46.488.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];

plot(t,y,'

o'

)%画散点图

p=politic(t,y,2)%二次多项式拟合

Holdon

xi=lenspiece(0,16,160);

%在[0,16]等间距取160个点

yI=polygala(p,xi);

%由拟合得到的多项式及xi,确定yi

plot(xi,yI)%画拟合曲线图

执行程序得到图2;

图2

显示的结果为

p=

-0.04451.07114.3252

p的值表示二阶拟合得到的多项式为:

y=-0.0445t2+1.0711t+4.3252

下面是用lsqcurvefit()函数,即最小二乘拟合方法的Matlab表达:

t=[1:

y=[46.488.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];

x0=[0.1,0.1,0.1];

min=inline('

x

(1)*t.^2+x

(2)*tax(3)'

'

x'

t'

);

x=lsqcurvefit(zuixiao,x0,t,y)%利用最小二乘拟合

其显示的结果为:

x=

可以看出其得到的结果与politic函数的结果相同。

这说明在多项式拟合问题上这两个函数的效果是相同的。

下面的一个例子将体现lsqcurvefit()函数的优势。

例2:

在物理学中,为研究某种材料应力与应变的关系,测得一组数据如下表:

应力σ

925

1125

1625

2125

2625

3125

3625

应变ε

0.11

0.16

0.35

0.48

0.61

0.71

0.85

如果假定应力与应变有如下关系(σ为应力值,ε为应变值):

试计算a、b的值。

x=[925,1125,1625,2125,2625,3125,3625];

y=[0.11,0.16,0.35,0.48,0.61,0.71,0.85];

Plot(t,y,’o'

[p,resid1]=politic(x,y,2)

Xi=lenspiece(700,3700,3000);

Yi=polygala(pox);

Plot(xi,yI)

X0=[0.1,0.1];

Fife=inline('

a

(1)+a

(2)*log(x)'

a'

'

x'

[a,resid2]=lsqcurvefit(fff,x0,x,y)

plot(xi,fffa,xi),'

执行程序得到图3,图中蓝色曲线为利用prolific()函数得到的曲线,红色曲线为利用lsqcurvefit()函数得到的曲线;

p=

-0.00000.0004-0.2266

resid1=

R:

[3x3double]

Df:

4

Norms:

0.0331

a=

-3.58100.5344

resid2=

0.0064

其中a的值代表利用lsqcurvefit()函数得到的关系为:

ε=-3.5810+0.5344σ

resid1、resid2分别代表运用politic()函数、lsqcurvefit()函数得到的残差。

可以看出利用lsqcurvefit()函数残差更小,即得到了更好的拟合效果。

在数学建模的实际问题中,如果问题的机理不明,我们只能采用politic()函数,即多项式拟合的方法,以获得近似的数据描述函数;

但如果通过分析,可以得到一些机理,那么采用最小二乘的方法将得到更好的效果,而且得到的拟合函数也更有意义。

五、隐函数的图形绘制

plot()只能绘制显函数图形,对于形如

的复杂隐函数,很难转化为显函数并利用plot()函数绘制图形,这时就可以用employ()函数直接绘制其曲线。

MATLAB的表达形式如下:

ezplot('

1/y-log(y)+log(-1+y)+x-sin(x)'

执行程序得到图5

图5图6

如果是形如下面的参数方程

同样可以利用ezplot()函数绘制其曲线。

>

ezplot('

sin(3*t)*cost(t)'

sin(3*t)*sin(t)'

[0,pi])

执行程序得到图6。

六、三维图形绘制

假设有一个时间向量t,对该向量进行下列运算则可以构成三个坐标值向量

对于上面的方程可以利用ezplot3()函数或plot3()函数绘制三维曲线。

这里仅列举ezplot3()函数的使用。

ezplot3(‘sin(t)'

’cost(t)'

[0,6*pi])

执行程序得到图7:

绘制下述曲面:

Nr=12;

nth=50;

r=inscape(0,1,nr);

Theta=inscape(0,2*pi,nth);

[R,T]=meshgrid(retreat)

x=cost(theta'

)*r;

y=sin(theta'

Surf(x,y,R.^3.*cos(3*T))

执行程序得到图8。

图7图8

除了surf()函数还有surf()、surf()、mesh()、waterfall()函数也用于曲面的绘制,具体效果如图9所示,可以针对自己的需要选取适合的曲面绘制函数。

图9

MATLAB作图之三维绘图示例山体绘制

%三维绘图示例山体绘制

%mesh函数演示

x=1.0:

0.1:

2.0;

y=2.0:

3.0;

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

z=[5.115.135.145.135.095.044.984.934.894.854.85

5.395.495.515.465.325.144.944.744.594.494.48

5.615.775.815.715.515.234.904.594.364.214.19

5.735.925.975.865.625.274.884.514.234.054.03

5.745.925.975.867.625.274.884.514.214.044.02

5.635.795.846.7410.539.238.914.594.334.184.16

5.425.535.565.497.355.164.934.734.554.454.44

5.145.185.195.1711.125.054.974.904.844.814.80

4.484.804.794.824.874.945.025.105.165.195.20

4.564.454.434.494.644.845.065.285.455.555.56

4.364.194.164.254.474.765.095.415.665.815.83];

figure

(1)

%画网格图

mesh(X,Y,z);

colormap([010]);

x轴'

y轴'

z轴'

%画表面图

figure

(2)

surf(X,Y,z);

colormap(100)

xlabel('

ylabel('

zlabel('

七、二项分布的使用

飞机成功起飞的概率问题:

由16架飞机组成的空军飞行中队要求做好立即起飞的准备,其中一架飞机不能立即起飞的概率为

20%,重新起飞需几分钟的时间,因此一架飞机立刻起飞的概率为0.80。

12架飞机能够成功起飞的概率为多少?

这是一个概率中的二项分布问题,常用bipods()函数。

h=bipods(12,16,0.80)%二项分布函数的概率值

计算结果为

h=0.2001

另一方面,至少有14架飞机立刻成功起飞的概率为:

h=1-binocdf(13,16,0.80)%或h=sum(binned(14:

16,16,0.80)),

其中binned()为二项分布的累积概率值,计算结果为h=0.3518。

在实际的数学建模竞赛中,仅罗列一个一个的数据是枯燥而又不直观的,很难吸引人们的注意,也不容易打动评委们的心;

因此,结合数值计算结果,并合理的利用MATLAB的绘图功能会起到事半功倍的效果。

下面的程序为运行结果的绘图(图10)表示:

n=1:

16;

h=binopt(n,16,0.80);

plot([nun],[zeros(1,16);

h],'

k'

)%二维绘图函数

text(8-.7:

16-.7,h(8:

16)+.005,num2str(h(8:

16)'

3))%在图中进行注释函数

axis([01700.27])%坐标轴取值范围函数

Numberofaircraftlaunchedontime'

)%给x轴加标题

probability'

)%给y轴加标题

Set(gca,'

XTick'

0:

2:

16)

set(gca,'

XTickLabel'

{'

0架'

2架'

4架'

6架'

8架'

10架'

12架'

14架'

16架'

})

图10图11

根据例5中的数据,用线性回归的方法画出95%的置信区间,见图11,程序如下:

x=[1:

[presid1]=polyfit(x,y,2)

[What,w]=polyclone(p,x,resid1,0.05);

plot(x,yhat,'

k-'

x,yhat-w,'

k--'

x,yhat+w,'

x,y,'

ks'

[x;

x],[yeasty],'

残差的进一步分析:

首先计算残差值,然后用函数normplot将其画在图12中,以观察残差是否服从正态分布。

程序为:

[p,resid1]=politic(x,y,2)

Normplot(y-ployl(p,x))

white('

white'

)%设置背景为白色

图12图13

由图12看出,这些残差点与直线非常接近,由此得出结论,这些残差值非常接近于正态分布,选择

的模型是合适的。

通过对Matlab相关知识的运用,加强了Matlab软件的应用能力,加深了方程求根方法的理解,特别是对Matlab软件编程中的一些细节的把握中有了较大的提高。

无疑这次论文的写作过程是一个不断学习、不断提高的过程,如果Matlab的考核只是一次简单的考试,可能我只学会了如何去解题,而对Matlab的理解还只是停留于表面,但是一次真正的实践,通过用Matlab中所学的去解决一个实际问题,这个锻炼无疑是更大的,其意义也更大。

对于这次编程任务的完成,我想一方面靠自己的努力,一方面依靠科技的对我们的帮助。

同时我也意识到自己对MATLAB还不够了解,今后需要花更多时间在这门课上,以求更好的掌握MATLAB。

在学习的过程中,我感受到了MATLAB软件其功能的强大,不仅可以很方便地用C语言来进行编程,而且还具有超强大的处理矩阵的能力,这对于解决那些复杂的矩阵方程是有很大的帮助的。

除此之外,就我这几天对MATLAB的接触,我还认识到它还可以直接画电路图来进行仿真处理问题。

丰富的模块类别涵盖大量的元器件,使画起图来非常得方便,仿真的效果也不错,速度也较快。

总之,这几天让我感觉到学会了MATLAB在以后的工作与学习中将会有很大的作用,帮助我们解题进步。

当然,MATLAB还有很多强大的功能等待我们去探索,尤其是我们马上就要进入大二下半学期的学习当中,并且我想接下来一年,在大三的学习中,更多的专业课会接踵而至,能够掌握一款实用并且强大的软件是一件很必要的事情,现在,MATLAB就摆在我们面前,我会用心学习MATLAB的其他的功能,希望可以为以后的专业学习和将来的工作带来便利。

专业:

统计

班级:

2012级统计一班

学号:

20121050124

姓名:

王欣妍

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1