MATLAB数学实验报告

发布时间:2016-05-02 11:08:56   来源:文档文库   
字号:

Matlab 数学实验报告

一、 实验目的

通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic模型、懂得最小二乘法、线性规划等基本思想。

二、 实验内容

2.1 实验题目一

2.1.1实验问题

Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式xk+1=λsin(πxk),做出相应的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的面积即可。

2.2.3程序设计

f=inline('acos(x/20)*x^2+100*pi-200*acos(x/20)-x*sqrt(100-(x^2)/4)-50*pi');

a=0;

b=20;

dlt=1.0*10^-3;

k=1;

while abs(b-a)>dlt

c=(a+b)/2;

if f(c)==0

break;

elseif f(c)*f(b)<0

a=c;

else

b=c;

end

fprintf('k=%d,x=%.5f\n',k,c);

k=k+1;

end

2.2.4问题求解与结论

k=6,x=11.56250

k=7,x=11.71875

k=8,x=11.64063

k=9,x=11.60156

k=10,x=11.58203

k=11,x=11.59180

k=12,x=11.58691

k=13,x=11.58936

k=14,x=11.58813

k=15,x=11.58752

结果表明,要想牛只吃到一半的草,拴牛的绳子应该为11.6米。

2.3实验题目三

2.3.1实验问题

饲养厂饲养动物出售,设每头动物每天至少需要700g蛋白质、30g矿物质、100mg维生素。现有5种饲料可供选用,每种饲料每千克所含营养成分含量及单价如下表。试确定既能满足动物生长的营养需要,又可使费用最省的选用饲料的方案。

五种饲料单位质量(1kg)所含营养成分

2.3.2问题分析与模型建立

Xj (j=1,2,3,4,5)表示饲料中所含的第j种饲料的数量。由于提供的蛋白质总量必须每天满足最低要求70g,故应有

3X1+2X2+1X3+6X4+18X5700

同理,考虑矿物质和维生素的需求。应有

1X1+0.5X2+0.2X3+2X4+0.5X530

0.5X1+1X2+0.2X3+2X4+0.8X5100

希望调配出来的混合饲料成本最低,故目标函数f

f=0.2X1+0.7X2+0.4X3+0.3X4+0.8X5

当来对决策量Xj的要求应为非负。

所以该饲料配比问题是一个线性规划模型

Min f =0.2X1+0.7X2+0.4X3+0.3X4+0.8X5

3X1+2X2+1X3+6X4+18X5700

1X1+0.5X2+0.2X3+2X4+0.5X530

0.5X1+1X2+0.2X3+2X4+0.8X5100

Xj0,j=1,2,3,4,5

2.3.3模型评述

一般的食谱问题可叙述为: 设有 n 种食物,每种食物中含有 m 种营养成分。用ija 表示一个单位的第 j 种食物中含有第 i 种营养的数量,用ib 表示每人每天对第 i 种营养的最低需求量,jc 表示第 j 种食品的单价,jx 表示所用的第 j 种食品的数量,一方面满足 m 种营养成分的需要同时使事物的总成本最低。 一般的食谱问题的线性规划模型为

这类线性规划模型还可以描述很多诸如合理下料、最小成本运输、合分派任务等问题,具有很强的代表性。

2.3.4模型计算

将该问题化成 Matlab 中线性规划问题的标准形式Min f=0.2X1+0.7X2+0.4X3+0.3X4+0.8X5

-3X1-2X2-1X3-6X4-18X5-700

-1X1-0.5X2-0.2X3-2X4-0.5X5-30

-0.5X1-1X-0.2X3-2X4-0/;.8X5-100

j0,j=1,2,3,4,5

MATLAB软件的编辑器构作m文件LF如下:

c=[0.2,0.7,0.4,0.3,0.8];

a=[-3,-2,-1,-6,-18;-1,-0.5,-0.2,-2,-0.5;-0.5,-1,-0.2,-2,-0.8];

b=[-700,-30,-100];

lb=[0 0 0 0 0];

ub=[];

aeq=[];

beq=[];

[x,fval]=linprog(c,a,b,aeq,beq,lb,ub)

MATLAB命令窗口键入LF,回车,计算结果显示如下

x= 0.0000

0.0000

0.0000

39.7436

25.6410

fval =

32.4359

其结果显示x1=0 x2=0 x3=0 x4=39.7436 x5=25.6410,则表示该公司分别购买第四种第五种饲料39.7436(kg), 25.6410kg)配成混合饲料;所耗成本32.4359(元)为满足营养条件下的最低成本。

2.3.5模型思考:线性规划的本质特点

一. 目标函数是决策变量的线性函数

二. 约束条件是决策变量的线性等式或不等式,它是一种较为简单而又特殊的约束极值问题。

三. 能转化为线性规划问题的实例很多如:生产决策问题,一般性的投资问题,地址的选择,运输问题等等。

2.4实验题目四

2.4.1 实验题目描述

1790年到1980年各年美国人口数的统计数据如下表:

试根据以上数据,

(1) 分别用Malthu模型和Logistic模型建立美国人口增长的近似曲线(设美国人口总体容纳量为3.5亿);

(2) 预测2000年,2005年,2010年,2015年,2020年人口数;

(3) 对两种预测结果进行比较.

2.4.2问题的分析

2.4.2.1 Malthu模型

1798年,Malthus提出对生物繁殖规律的看法。他认为,一种群中个体数量的增长率与该时刻种群的的个体数量成正比。设x(t)表示该种群在t时刻个体的数量,则其增长率(dx/dt=rx(t),或相对增长率1/x*dx/dt=r.其中常数r=B-D,BD分别为该种群个体的平均生育率与死亡率。

2.4.2.2 Logistic模型

1838年,Verhulst指出上述模型未考虑“密度制约”因素。种群生活在一定的环境中,在资源给定的情况下,个体数目越多,个体所获资源就越少,这将抑制其生长率,增加死亡率。所以相对增长率1/x*dx/dt)不应为一常数r,而应是r乘上一个“密度制约”因子。此因子随x单调减小,设其为(1-x/k),其中k为环境容纳量。于是Verhulst提出Logistic模型:dx/dt=rx(1-x/k)

2.4.3实验设计的流程

2.4.3.1 Malthu模型源代码

clear;clf

x=10:10:200;

y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

plot(x+1780,'k-','markersize',20);

axis([1780,2020,3,800]);

grid;hold on

n=20;

a=sum(x(1:n));

b=sum(x(1:n).*x(1:n));

c=sum(log(y(1:n)));

d=sum(log(y(1:n)).*x(1:n));

A=[n a;a b];

B=[c;d];

P=inv(A)*B;

t=10:10:800;

f=exp(P(1)+P(2)*t);

plot(t+1780,f,'ro-','linewidth',2);

k=[2000 2005 2010 2015 2020];

f=exp(P(1)+P(2)*(k-1780));

fprintf('f=%.1f',f);

2.4.3.2 Logistic模型程序源代码

clc;clear;

x=9:28;

y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

plot(x*10+1700,y,'k.','markersize',15);

grid;

hold on;

axis([1790 2015 0 400]);

m=1000*y./(1000-y);

a1=sum(x);

a2=sum(x.^2);

a3=sum(log(m));

a4=sum(x.*log(m));

A=[20,a1;a1,a2];

B=[a3;a4];

p=inv(A)*B;

t=9:0.1:55;

s=1./(0.001+exp(-p(1)-p(2)*t));

plot(t*10+1700,s,'r-');

k=[30 30.5 31 31.5 32];

l=[k*10+1700;1./(0.001+exp(-p(1)-p(2)*k))];

2.4.4上机实验结果的分析与结论

Malthus模型结果

Logistic 模型结果

对比预测结果与实际数据,可看出Logistic模型更符合自然规律。

三、 实验小结与体会

通过以上四组数学实验、我们熟悉了解了许多MATLAB的方法及理论、并尝试了将其运用到了实际问题中去,解决实际问题。比如,在实验一中,了解了方程的迭代以及分岔、混沌的概念;实验二中通过简单的MATLAB程序解决数学问题;实验三中尝试通过线性规划建立数学模型,从而解决生产生活中的实际问题,了解了最大最小化问题的求解及其MATLAB指令;实验四中通过人口预测问题的分析求解,了解运用最小二乘法进行数据拟合的基本思想,掌握了建立人口增长数学模型的思想方法,学会建立Malthu模型和Logistic模型。

此外,通过这几次数学实验,就个人而言,不仅思维得到了锻炼、提升,而且让我们感觉到数学的乐趣。用MATLAB编出的程序不仅算得快,画出的图形、得出的结论也很有意思。就团队而言,这门课程很讲究相互配合、团队合作,不仅让我们更有团队精神,更增进了友谊。而且,通过实验不仅仅只是解决了几道题而已,更重要的是学习解决数学问题的思维方式。

最后,感谢老师开设这门课程,给了我们更多机会,让我们从中受益匪浅,收获良多。谢谢老师的悉心教导。

00:00 Thomas Bergersen - Empire of Angels
04:47 Silver Screen - The Elysium
08:30 Epic Score - Ride to Glory
10:35 C21FX - Ancient Evil
12:55 Sub Pub Music - Fearless
14:55 Position Music - Resonance Theory
17:19 Volta Music - Revolution
19:50 PostHaste Music - Fallen Heroes
22:24 Max Cameron - Escape Velocity
25:40 Kelly Andrew - Chasing Glory
28:17 Peter Crowley - The Echoes Of War
32:52 BrunuhVille - The Wolf and the Moon
36:44 Brand X Music - Helmet to Helmet
39:16 Immediate Music - Protectors Of Truth
44:14 Really Slow Motion - Homecoming Warrior
46:41 Nightcall - Dead V
50:06 Two Steps From Hell - Riders
53:26 EpicMusicVn - Starlight
56:07 Gothic Storm Music - Beyond The Stars
58:34 Michael Conn - Pitcairn Story
01:01:55 Audiomachine - Ice of Phoenix
01:05:20 C21FX - Legacy
01:08:03 Sub Pub Music - Face the World
01:10:15 Arn Andersson - Immortality
01:12:17 Audiomachine - Sura
01:14:22 Volta Music - Luna Rosa
01:16:28 SimBi J - Glory
01:19:00 Really Slow Motion - Suns And Stars
01:21:41 PostHaste Music - Talisman
01:23:46 Future World Music - Larger Than Life
01:26:32 IconAudio - Vanguard
01:29:15 Atlas Music - Frozen Warrior
01:32:16 Ninja Tracks - Republic
01:36:04 Antti Martikainen - The King Of The Highlands
01:43:34 James Paget - The Hero Within
01:47:43 BrunuhVille - Fields of Elysium
01:51:09 Thomas Bergersen - Colors of Love
01:57:22 Christian Baczyk - Arise (Ft. Kashia Vu)
02:00:06 ICON Trailer Music - The Eye of the Oracle
02:02:29 J.T Peterson - Solaris (feat. Julie Elven)
02:05:03 Ivan Torrent - Crystalline (Feat. Celica Soldrea)
02:09:30 switch. Music - Aeon (ft. Juliet Lyons)
02:12:02 Marcus Warner (C21FX) - If Elephants Could Fly

02:16:51 Brand X Music - Auryn

02:19:49 Silver Screen - Beneath The Horizon

02:22:40 Sergey Saliev - Angels Watch Over Us

02:24:57 Martin Kirkhaug - Final Approach

02:29:11 Tony Anderson - The Impossible

02:32:21 EpicMusicVn - Last Reunion

02:36:46 Ivan Torrent - In Aeternum

02:39:21 Sergey Saliev - When The Spring Comes

02:42:45 EpicMuscVn - Lament of Valkyrie

02:45:45 Michael Maas ft. Felicia Farerre - Morpheus and the Dream

02:48:33 C21 FX - Blood Red Roses

02:51:56 Aleksandar Dimitrijevic - Icarus Rising

本文来源:https://www.2haoxitong.net/k/doc/77a588229b89680202d82507.html

《MATLAB数学实验报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式