MATLAB数学实验报告

合集下载

基于matlab的实验报告

基于matlab的实验报告

基于matlab的实验报告实验报告:基于MATLAB 的实验一、实验目的通过使用MATLAB 软件,掌握如何进行数据分析、图像处理、算法实现等一系列实验操作,提高实验者的实践能力和动手能力。

二、实验原理MATLAB 是一种在科学计算和技术开发领域广泛应用的计算机软件。

它能进行矩阵计算、绘制函数和数据图像、实现算法以及进行数据分析等。

通过掌握MATLAB 的使用,能够快速、高效地解决各种科学和工程问题。

三、实验内容1. 数据分析:使用MATLAB 的数据分析工具进行数据的导入、处理和分析。

2. 图像处理:利用MATLAB 的图像处理工具包对图像进行滤波、增强、分割等操作。

3. 算法实现:使用MATLAB 实现常用的算法,如排序、搜索、图像压缩等。

四、实验步骤1. 数据分析:(1)使用MATLAB 的读取数据函数将数据导入MATLAB 环境中。

(2)利用MATLAB 的数据处理函数进行数据清洗和预处理。

(3)使用MATLAB 的统计工具进行数据分析,如求平均值、标准差等。

(4)利用MATLAB 的绘图函数将分析结果可视化。

2. 图像处理:(1)使用MATLAB 的读取图像函数将图像导入MATLAB 环境中。

(2)利用MATLAB 的图像处理工具包进行滤波操作,如均值滤波、中值滤波等。

(3)使用MATLAB 的图像增强函数对图像进行锐化、变换等操作。

(4)利用MATLAB 的图像分割算法对图像进行分割。

3. 算法实现:(1)使用MATLAB 编写排序算法,如冒泡排序、快速排序等。

(2)使用MATLAB 编写搜索算法,如二分查找、线性搜索等。

(3)使用MATLAB 实现图像压缩算法,如离散余弦变换(DCT)。

五、实验结果实验中,我们使用MATLAB 完成了数据分析、图像处理和算法实现的一系列实验操作。

通过数据分析,我们成功导入了数据并对其进行了清洗和预处理,最后得到了数据的统计结果。

在图像处理方面,我们对图像进行了滤波、增强和分割等操作,最终得到了处理后的图像。

MATLAB实验报告(1-4)

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:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。

MATLAB实验报告(四份!!!)

MATLAB实验报告(四份!!!)

0380160815880001449451490168779983287916534749293454515731] >> double(x) ans = -33.5325 60.6078 -54.7098 27.3192 实验三 MATLAB 绘图
一 实验环境 计算机 MATLAB 软件 二 实验目的 1. 掌握 MATLAB 的基本绘命令。 2. 掌握运用 MATLAB 绘制一维、二维、三维的图形方法。 3. 给图形加以修饰。 三 预备知识 特殊的二维图形函数有:直方图、柄图、阶梯图、饼图、频数累计柱状 图、极坐标图 四 实验内容和步骤
3.创建一个 3x3 矩阵,并求其转置,逆矩阵。 >> A=magic(3) A= 8 3 4 >> A' ans = 8 1 6 >> inv(A) 3 5 7 4 9 2 1 5 9 6 7 2
ans = 0.1472 -0.0611 -0.0194 -0.1444 0.0222 0.1889 0.0639 0.1056 -0.1028
3. 画出 y=的曲线(x(-5,5)) 。在这曲线上加入相同区间里的 y=的曲线,并且采用绿色折 线标识。 >> x=linspace(-5,5,100); >> y=x.^2; >> plot(x,y) >> hold on >> z=x.^(1/3); >> plot(x,z,'g--')
4. 在同一窗口不同坐标系里分别绘出 y1=sinx,y2=cosx,y3=cinh(x),y4=cosh(x)4 个图形。 >> x=linspace(0,2*pi,30); >> subplot(2,2,1);plot(x,sin(x)); >> subplot(2,2,2);plot(x,cos(x)); >> subplot(2,2,3);plot(x,sinh(x)); >> subplot(2,2,4);plot(x,cosh(x));

MATLAB 《数学实验》报告9-Matlab的极限和微分运算

MATLAB 《数学实验》报告9-Matlab的极限和微分运算

clear syms x F3=x*log(1+x)/sin(x^2) limit(F3,'x',0)
(4) F4
arctan x lim x x
Matlab 命令 结果 F4 = atan(x)/x ans = 0
clear syms x F4=atan(x)/x limit(F4,'x',inf)
clear%dier syms x y2=x*sin(x)*log(x) diff(y2,x)
结果 y2 = x*sin(x)*log(x) ans = sin(x)*log(x)+x*cos(x)*log(x)+sin(x)
(3) y 3
xe x 1 sin x
Matlab 命令 结果 y3 = (x*exp(x)-1)/sin(x) ans = (exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x)
1
clear syms x F2=((1+x)/(1-x))^(1/x) limit(F2,'x',0)
F2 = ((1+x)/(1-x))^(1/x) ans = exp(2)
(3) F3
lim
x ln(1 x) 2 x 0 sin x
Matlab 命令 结果 F3 = x*log(1+x)/sin(x^2) ans = 1
x 0
arctan x ; x
结果 = atan(x)/x ans = 1
1
Matlab 命令
clear%µ þ ½· Ú¶ ÖÖ· ¨ syms x f=atan(x)/x limit(f,'x',0)

初识MATLAB的实验报告

初识MATLAB的实验报告

初识MATLAB的实验报告1. 引言MATLAB(Matrix Laboratory)是一种高级的技术计算环境和编程语言。

它具有强大的矩阵计算能力和丰富的科学和工程绘图功能,被广泛应用于各个领域的科研与工程实践中。

本实验旨在初步了解MATLAB的基本语法和功能,通过实际操作加深对MATLAB编程的理解。

2. 实验目的1. 掌握MATLAB的安装和基本使用方法;2. 学习MATLAB中的常用数学函数和操作;3. 了解MATLAB绘图功能并能够绘制简单的图形。

3. 实验步骤3.1 MATLAB安装首先,在官方网站(3.2 MATLAB入门3.2.1 MATLAB语法MATLAB的语法类似于其他常见的编程语言,每个语句以分号结尾。

在MATLAB 中,可以直接进行基本的数学运算,例如加减乘除、指数、对数等。

通过以下代码可以计算两个变量的和并将结果打印出来:matlaba = 10;b = 20;sum = a + b;disp(sum);3.2.2 MATLAB变量在MATLAB中,可以创建和操作各种类型的变量,例如数值、字符串、矩阵等。

以下代码演示了如何创建一个矩阵:matlabmatrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];disp(matrix);3.2.3 MATLAB函数MATLAB提供了许多内置的数学函数,可以直接调用。

以下代码演示了如何计算正弦函数值并打印结果:matlabx = pi/4;y = sin(x);disp(y);3.3 MATLAB绘图MATLAB具有强大的绘图功能,可以绘制各种图形,如曲线、散点图、柱状图等。

以下代码演示了如何绘制一个简单的正弦曲线:matlabx = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);xlabel('x');ylabel('y');title('Sine Curve');4. 实验结果与分析在完成上述实验步骤后,我们成功安装了MATLAB,并学习了基本的语法、变量和函数的使用方法。

matlab实验报告总结

matlab实验报告总结

matlab实验报告总结1.求一份matlab的试验报告计算方法试验报告3【实验目的】检查各种数值计算方法的长期行为【内容】给定方程组x'(t)=ay(t),y'(t)=bx(t), x(0)=0, y(0)=b的解是x-y 平面上的一个椭圆,利用你已经知道的算法,取足够小的步长,计算上述方程的轨道,看看那种算法能够保持椭圆轨道不变。

(计算的时间步长要足够多)【实验设计】用一下四种方法来计算:1. Euler法2. 梯形法3. 4阶RK法4. 多步法Adams公式【实验过程】1. Euler法具体的代码如下:clear;a=2;b=1;A=[0 a; -b0];U=[];u(:,1)=[0;b];n=1000000;h=6*pi/n;fori=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5; u(:,i+1)=u(:,i)+h*A*u(:,i);endt=1:n+1;subplot(1, 2,1);plot(1:n,delta);gridon;subplot(1,2,2);plot(u(1,:),u(2,:));gridon;max(abs(delta-ones(1,length(delta))));结果如下:2. 梯形法具体的代码如下:clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=300;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;v1=u(:,i)+h*A*u(:,i);v2=u(:,i)+h*A*(u(:,i)+v1)/2;1u(:,i+1)=u(:,i)+h*A*(u(:,i)+v2)/2;endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下 3. 4阶RK法clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=70;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;k1=A*u(:,i); k2=A*(u(:,i)+h/2*k2); k3=A*(u(:,i)+h*k3); k4=A*(u(:,i)+h*k3); u(:,i+1)=u(:,i)+h/6*(k1+2*k2+2*k3+k4);endt=1:n+1 ;subplot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:4. 多步法Adams公式clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=200;h=6*pi/n;u(:;2)=u(u,1)+h*A*u(:,1);u(:;3)=u(u,2)+h/2*A*(3*u(:,2)-u(:,1));u(:;4)=u(u,3)+h/12*A*(23*u(:,3)-16*u(:,2)+5*u(:, 1)); delta(1)=((u(1,1)/a)^2+(u(2,1)/b^2)^0.5 delta(2)=((u(1,2)/a)^2+(u(2,2)/b^2)^0.5delta(3)=((u(1,3)/a)^2+(u(2,3)/b^2)^0.5for i=4:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;u(:,i+1)=u(:,i)+h/24*A*(55*u(:,i)-59*u(:,i-1)+37 *u(:,i-1)+37*u(:,i-2)-9*u(:,i-3));endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:【实验分析】通过这几种方法对比,发现最为稳定的是多步法Adams公式和4阶RK法,其次是梯形法,而欧拉法最为不稳定。

MATLAB数学实验三求积分实验报告

MATLAB数学实验三求积分实验报告

数学实验报告三:MATLAB 中一元函数积分的计算
1、积分有定积分和不定积分,运用函数int 可以求得符号表达式的积分.
int(f) 求函数f 对默认自由变量x 的不定积分
int(f,t) 求函数f 对符号变量t 的不定积分
int(f,a,b) 求函数f 对默认自由变量x 从a 到b 的定积分
int(f,t,a,b) 求函数f 对符号变量t 从a 到b 的定积分
2、积分应用——求面积
解方程 [x,y]=solve(‘f1=0’,‘f2=0’)
作图:ezplot(f,[x1,x2],[y1,y2]); hold on 在同一坐标系作图
写出积分表达式进行积分
3、清除变量clear 清屏clc 清除图像 clf
班级 姓名 学号 成绩
1、 求下列函数的积分
(1) ln x xdx ⎰ (2)2cos x xdx ⎰
(3)20sin d 2x x π⎰ (4)1
01x x e dx e +⎰
2、 求抛物线2x y =与直线20x y --=所围图形面积.
要求:(1)解方程,求交点
(2)作图:在同一坐标系作出这两个函数的图形
(3)写出积分表达式 进行积分计算。

MATLAB实验报告

MATLAB实验报告

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 盘下的data 、txt ⽂件 2)读⼊D 盘下的data 、txt ⽂件,并赋给变量num 8、符号运算1)对表达式f=x 3-1 进⾏因式分解2)对表达式f=(2x 2*(x+3)-10)*t ,分别将⾃变量x 与t 的同类项合并 3)求3(1)xdz z +?三、实验报告要求完成实验内容的3、4、5、6、7、8,写出相应的程序、结果实验⼆ MATLAB 语⾔的程序设计⼀、实验⽬的1、熟悉 MATLAB 程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计⽅法3、函数⽂件的编写与设计4、了解与熟悉变量传递与赋值⼆、实验内容1.编写程序,计算1+3+5+7+…+(2n+1)的值(⽤input 语句输⼊n 值)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 onfor r=0:0.3:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.5)for i=101:150plot(r,x(i),'k.');endtext(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end加密迭代后clear;clf;axis([0,4,0,4]);hold onfor r=0:0.005:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.1)for i=101:150plot(r,x(i),'k.');endend运行后得到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)-5 0*pi');a=0;b=20;dlt=1.0*10^-3;k=1;while abs(b-a)>dltc=(a+b)/2;if f(c)==0break;elseif f(c)*f(b)<0a=c;elseb=c;endfprintf('k=%d,x=%.5f\n',k,c);k=k+1;end2.2.4问题求解与结论k=6,x=11.56250k=7,x=11.71875k=8,x=11.64063k=9,x=11.60156k=10,x=11.58203k=11,x=11.59180k=12,x=11.58691k=13,x=11.58936k=14,x=11.58813k=15,x=11.58752结果表明,要想牛只吃到一半的草,拴牛的绳子应该为11.6米。

2.3实验题目三2.3.1实验问题饲养厂饲养动物出售,设每头动物每天至少需要700g蛋白质、30g矿物质、100mg维生素。

现有5种饲料可供选用,每种饲料每千克所含营养成分含量及单价如下表。

试确定既能满足动物生长的营养需要,又可使费用最省的选用饲料的方案。

五种饲料单位质量(1kg)所含营养成分2.3.2问题分析与模型建立设X j (j=1,2,3,4,5)表示饲料中所含的第j种饲料的数量。

由于提供的蛋白质总量必须每天满足最低要求70g,故应有3X1+2X2+1X3+6X4+18X5≥700同理,考虑矿物质和维生素的需求。

应有1X1+0.5X2+0.2X3+2X4+0.5X5≥300.5X1+1X2+0.2X3+2X4+0.8X5≥100希望调配出来的混合饲料成本最低,故目标函数f为f=0.2X1+0.7X2+0.4X3+0.3X4+0.8X5当来对决策量X j的要求应为非负。

所以该饲料配比问题是一个线性规划模型Min f =0.2X1+0.7X2+0.4X3+0.3X4+0.8X53X1+2X2+1X3+6X4+18X5≥7001X1+0.5X2+0.2X3+2X4+0.5X5≥300.5X1+1X2+0.2X3+2X4+0.8X5≥100X j≥0,j=1,2,3,4,52.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≤-100Xj≥0,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.00000.00000.000039.743625.6410fval =32.4359其结果显示x1=0 x2=0 x3=0 x4=39.7436 x5=25.6410,则表示该公司分别购买第四种第五种饲料39.7436(kg), 25.6410(kg)配成混合饲料;所耗成本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,B和D分别为该种群个体的平均生育率与死亡率。

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;clfx=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 onn=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模型更符合自然规律。

相关文档
最新文档