您的当前位置:首页正文

数学模型实验报告

2023-10-28 来源:榕意旅游网


数学模型实验报告

姓名

专业:数学与应用数学 学号:

实验一 熟悉Matlab软件基本(2)>> A=[1 2 3; 2 3 4; 3 4 5]; >> ,B=[1 1 1; 2 2 2; 3 3 3]; >> B=[1 1 1; 2 2 2; 3 3 3]; 功能

一、实验目的和要求:

熟悉Matlab软件的基本功能,数组的输入及运算。

二、实验内容和步骤:

1、 熟悉Matlab软件的窗口的功能。 2、 熟悉Matlab软件工作区以及基本命

令。

3、 熟悉Matlab软件帮助系统。 4、 熟悉数组运算。

5、 (1) a=[1 2 3],b=[5 7 8] c=4,计算:

a+c; a*c; a+b; a.*b; a ./b ; a.\\b ; a.^c ;c.^a ; a.^b .

(2) A=[1 2 3; 2 3 4; 3 4 5],B=[1 1 1; 2 2 2; 3 3 3], c=3,计算A+c; A+B; A*B; A.*B; A.\\B; A.\\c; A^c; A.^c.

6、在同一坐标系中作出

ysinx,ycosx,X[0,2]的图形。

三、实验现象及结果:

解:5】(1)>> a=[1 2 3]; >> b=[5 7 8]; >> c=4; >> a+c

ans =5 6 7 >> a*c

ans = 4 8 12 >> a+b

ans = 6 9 11 >> a.*b

ans =5 14 24 >> a./b

ans =0.2000 0.2857 0.3750 >> a.\\b

ans =5.0000 3.5000 2.6667 >> a.^c

ans = 1 16 81 >> c.^a

ans = 4 16 64 >> a.^b

ans = 1 128 6561

>> c=3; >> A+c

ans =4 5 6 5 6 7

6 7 8 >> A+B

ans = 2 3 4 4 5 6 6 7 8 >> A*B

ans = 14 14 14 20 20 20 26 26 26 >> A.*B

ans = 1 2 3 4 6 8 9 12 15 >> A.\\B

ans = 1.0000 0.5000 1.0000 0.6667 1.0000 0.7500 >> A.\\c

ans =3.0000 1.5000 1.5000 1.0000 1.0000 0.7500 >> A^c

ans =132 192 252 192 279 366 252 366 480 >> A.^c

ans = 1 8 27 8 27 64 27 64 125 6】>> x=0:2*pi/30:2*pi; >> y1=sin(x);y2=cos(x); >> plot(x,y1,x,y2,':')

0.3333 0.5000 0.6000 1.0000 0.7500

0.6000 10.80.60.40.2Y0-0.2-0.4-0.6-0.8-101234567X实验二 熟悉Matlab软件M文件

一、实验目的和要求:

熟悉Matlab软件的命令式文件和函数式文件,熟悉循环和选择控制结构。

二、实验内容和步骤:

1、熟悉Matlab软件的程序编器。 2、熟悉命令式文件。 3、熟悉函数式文件。 4、(1) 编制循环和选择控制结构程序并

运行 (2) 编制一个命令式文件,计算5!。 (3)编制一个命令式文件,计算100

以内质数之和。

(4) 编制一个函数式文件,参数n,

返回n!。

三、实验现象及结果:

4】(1)循环结构:计算∑(1/n/n)(n<=100)的值 >> t=0; >> n=1;

>> while(n<=100) t=t+1/n/n; n=n+1; end >> t

t = 1.6350

选择控制结构:计算

y=cos(x+1)+sqrt(x^2+1) x=10 y=x*sqrt(x+sqrt(x)); x~=10

2>> x=10; >> if x==10

y=cos(x+1)+sqrt(x^2+1); else

y=x*sqrt(x+sqrt(x)); end >> y

y = 10.0543 >> x=5; >> if x==10

y=cos(x+1)+sqrt(x^2+1); else

y=x*sqrt(x+sqrt(x)); end >> y

y = 13.4500

(2)M文件:f1.m

n=5; a=1; for i=1:n a=a*i; end a

>>f1 a=120

(3)M文件:f2.m

a=0; for i=1:100 if isprime(i) a=a+i; end end a

>>f2 a=1060

(4)M文件:fun.m

function y=fun(n) y=1; for i=1:n y=y*i; end

>> n=10; >> fun(n) ans =

3628800 >> n=5; >> fun(n) ans = 120

实验三 席位分配

一、实验目的和要求:

编制程序,解决席位分配问题。

二、实验内容和步骤:

1、掌握课本席位分配的几个方法。 2、编制程序求解课本席位分配问题。3、分析实验结果。

三、实验现象及结果:

P283

M文件:f1.m

clear;clc;

a=[9061 7179 5259 3319 1182] N=26

L=length(a); b=a/sum(a)*N; GR=floor(b); jj=N-sum(GR);

[bb,xi]=sort(b-GR,'descend'); for i=1:jj;

GR(xi(i))=GR(xi(i))+1; end GR

Hu=zeros(L,5); for n=0:N-1; D(n+1,:)=[n+1 n+1/2

sqrt(n*(n+1)) 2*n*(n+1)/(2*n+1) n]; end for k=1:2 for i=1:N B(i,:)=a/D(i,k); end bb=B(:);

[bbb,x]=sort(bb,'descend'); xx=x(1:N); for i=1:L

Hu(k,i)=sum(xx-(i-1)*N>0)-sum(xx-i*N>0); end

end N=N-L;¯ for k=3:5 for i=1:N

B(i,:)=a/D(i+1,k); end bb=B(:);

[bbb,x]=sort(bb,'descend'); xx=x(1:N); for i=1:L

Hu(k,i)=sum(xx-(i-1)*N>0)-sum(xx-i*N>0); end end

Hu(3:5,:)=Hu(3:5,:)+ones(3,L); GD=Hu(1,:) MF=Hu(2,:) EP=Hu(3,:) HM=Hu(4,:) SD=Hu(5,:)

>>f1

a =9061 7179 5259 3319 1182 N =26

GR =9 7 5 4 1 GD =10 7 5 3 1 MF =9 8 5 3 1 EP =9 7 6 3 1 HM = 9 7 5 4 1 SD = 9 7 5 3 2 P285

M文件:f2.m

clear;clc;

a=[91490 1660 1460 1450 1440 1400 1100] N=100 L=length(a); b=a/sum(a)*N; GR=floor(b); jj=N-sum(GR);

[bb,xi]=sort(b-GR,'descend'); for i=1:jj;

GR(xi(i))=GR(xi(i))+1; end

GR

Hu=zeros(L,5); for n=0:N-1;

D(n+1,:)=[n+1 n+1/2

sqrt(n*(n+1)) 2*n*(n+1)/(2*n+1) n]; end for k=1:2 for i=1:N B(i,:)=a/D(i,k); end¨ bb=B(:);

[bbb,x]=sort(bb,'descend'); xx=x(1:N); for i=1:L

Hu(k,i)=sum(xx-(i-1)*N>0)-sum(xx-i*N>0); end end N=N-L; for k=3:5 for i=1:N

B(i,:)=a/D(i+1,k); end bb=B(:);

[bbb,x]=sort(bb,'descend'); xx=x(1:N); for i=1:L

Hu(k,i)=sum(xx-(i-1)*N>0)-sum(xx-i*N>0); end end

Hu(3:5,:)=Hu(3:5,:)+ones(3,L); GD=Hu(1,:) MF=Hu(2,:) EP=Hu(3,:) HM=Hu(4,:) SD=Hu(5,:)

>>f2

a = Columns 1 through 5 91490 1660 1460

1450 1440 Columns 6 through 7 1400 1100 N =100

GR = 92 2 2 1 1 1 1

GD =94 1 1 1 1 1 1

MF =93 2 1 1 1 1 1

EP =90 2 2 2 2 1 1

HM =89 2 2 2 2 2 1

SD =88 2 2 2 2 2 2

>> a=[5 8 2 6] a =

5 8 2 6 >> [b,c]=sort(a) %排序,b是按升序排列的,c是指现在的第i个数是原来的第几个数,想要b按降序排列[b,c]=sort(a,’descend’) b =2 5 6 8 c =3 1 4 2

实验四 微分方程模型(一)传染病模型

一、实验目的和要求:

编制程序,解决微分方程模型问题。

二、实验内容和步骤:

1、掌握微分方程的符号解方法和数值

解方法。

2、编制程序求解课本5.1传染病模型的模型3和模型4. 3、分析实验结果。

三、实验现象及结果:

SIR模型:

didtsii,i(0)i0 dssi,s(0)  dts0

M文件

function y=ill(t,x)

a=1;b=0.3;

y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts=0:50;

x0=[0.02,0.98];

[t,x]=ode45('ill',ts,t0);[t,x] plot(t,x(:,1),t,x(:,2)),grid,pause plot(x(:,2),x(:,1)),grid,

>>s0=[0.98,0.98,0.98,0.98,0.70,0.70,0.70,0.70];

i0=[0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02]; a=[1.0,0.6,0.5,0.4,1.0,0.6,0.5,0.4]; b=[0.3,0.3,0.5,0.5,0.3,0.3,0.5,0.5]; k=b./a s=0;

s=solve('1-s+0.3*log(s/0.98)=0',s); vpa(s,4)

im=1-0.3*(1+log(3.3*0.98))

结果:k = 0.3000 0.5000 1.0000 1.2500 0.3000 0.5000 1.0000 1.2500 ans = .3994e-1 1.009 im = 0.3479

实验五 微分方程模型(二)人

口模型

一、实验目的和要求:

编制程序,解决正规战模型问题。

二、实验内容和步骤:

1、掌握拟合方法。

2、编制程序求解课本5.6人口模型的指数增长模型和阻滞增长模型。 3、分析实验结果。

三、实验现象及结果:

M文件:exf03

t=0:11;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76]; plot(t,x,'*') p1=polyfit(t,x,1) p2=polyfit(t,x,2) t1=0:0.01:11; x1=p1(2)+p1(1)*t1;

x2=p2(3)+p2(2)*t1+p2(1)*t1.^2; figure(2)

plot(t,x,'*',t1,x1,t1,x2) f=inline('a(1)*exp(a(2)*t)','a','t'); p3=lsqcurvefit(f,[1,1],t,x); x0=p3(1),r=p3(2) x3=f(p3,t1); figure(3)

plot(t,x,'*',t1,x3)

  1/ s0 i0 s im 1.0 0.3 0.3 0.98 0.02 0.03994 0.3479 0.6 0.3 0.5 0.98 0.02 0.01965 0.1635 0.5 0.5 1 0.98 0.02 0.08122 0.0202 0.4 0.5 1.25 0.98 0.02 0.09172 0.0542 1.0 0.3 0.3 0.70 0.02 0.08403 0.1658 0.6 0.3 0.5 0.70 0.02 0.30560 0.0518 0.5 0.5 1 0.70 0.02 0.65776 0.0767 0.4 0.5 1.25 0.70 0.02 0.67554 0.1948 >> exf03 p1 =6.3605 -6.7910 p2 = 0.6599 -0.8986 5.3074

Optimization terminated: relative function value

changing by less than OPTIONS.TolFun. x0 = 5.2901 r =0.2453

80706050403020100t=0:11;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76]; T=[ones(size(t))',t']; b1=regress(log(x)',T,0.05); x01=exp(b1(1)),r1=b1(2) b2=polyfit(t,log(x),1); x02=exp(b2(2)),r2=b2(1) f=inline('a(1)*exp(a(2)*t)','a','t'); b3=lsqcurvefit(f,[1,1],t,x); x03=b3(1),r3=b3(2) t1=0:0.01:11;

x1=4.1884*exp(0.2743*t1); 1012x2=f(b3,t1);

plot(t,x,'*',t1,x1,t1,x2,'r')

0246880706050403020100-10legend('数据','线性回归','非线性拟合',2)

0246810>> exf04 x01 =4.1884 r1 =0.2743 x02 =4.1884 r2 =0.2743 Optimization terminated: relative function value changing by less than OPTIONS.TolFun. 12 x03 = 5.2901 r3 =0.2453

90 数据线性回归非线性拟合8070605080407030602010050400246810301220

M文件:exf04

100 024681012

实验六 离散模型 层次分析模型

一、实验目的和要求:

编制程序,解决层次分析模型问题。

二、实验内容和步骤:

1、掌握层次分析法。

2、编制程序求解课本8.1层次分析模型。

3、分析实验结果。

三、实验现象及结果:

>>f4

wA =0.2623 0.4744 0.0545 0.0985 0.1103 cvA = 5.0729 crA =0.0163

wB = 0.5949 0.0820 0.4286 0.6327 0.1667

0.2766 0.2364 0.4286 0.1924 0.1667

0.1285 0.6816 0.1429 0.1749 0.6667

cvB =3.0055 3.0015 3.0000 3.0092 3.0000

crB = 0.0048 0.0013 0 0.0079 0 decision =0.2990 0.2454

0.4556 M文件:f4.m

clc;clear

A=[1 1/2 4 3 3 ;2 1 7 5 5 ;1/4 1/7 1 1/2 1/3;

1/3 1/5 2 1 1;1/3 1/5 3 1 1]; B{1}=[1 2 5;1/2 1 2;1/5 1/2 1]; B{2}=[1 1/3 1/8;3 1 1/3;8 3 1]; B{3}=[1 1 3;1 1 3;1/3 1/3 1]; B{4}=[1 3 4;1/3 1 1;1/4 1 1 ]; B{5}=[1 1 1/4;1 1 1/4;4 4 1]; [wA,cvA,crA]=fun1(A)

for i=1:5; [wB(:,i),

cvB(i),crB(i)]=fun1(B{i}); end wB cvB crB

decision=wB*wA

实验七 博弈模型

一、实验目的和要求:

编制程序,解决利益分配模型问题。

二、实验内容和步骤:

1、掌握利益分配方法原理。

2、编制程序求解课本11.5三人经商利益分配及污水处理费用的合理分担。

3、分析实验结果。

三、实验现象及结果:

2、三人合作对策, 编写特征函数如下

( 程序名eigen1.m) :

function v=eigen(x)

s=sum(x);

if s==0 v=0; return; end

if s==1 v=1; return; end

if x==[1,1,0] v=7; return; end

if x==[1,0,1] v=5; return; end

if x==[0,1,1] v=4; return; end

if s==3 v=10; end

调用程序的命令为( 在MABLAB 命令窗口中 输入) : F=shapley (@eigen1,3)( 回车) ,

立即得到

Shapley 值为: 4.0000、3.5000、2.5000 即三兄弟的利益分配分别为4 万元、3.5 万元、2.5 万元。

2、把分担的费用转化为分配效益, 将联合建厂比单独建厂节约的投资定义为特征函数, 编写特征函数如下( 程序名eigen2.m) :

function v=eigen(x) s=sum(x);

if s==0 v=0; return; end if s==1 v=0; return; end

if x==[1,1,0] v=40; return; end if x==[1,0,1] v=0; return; end

if x==[0,1,1] v=25; return; end if s==3 v=64; end

调用程序的命令为( 在MABLAB 命令窗口中 输入) : F=shapely(@eigen2,3),( 回车) ,

立即得到

Shapley值为: 19.6667、32.1666、12.1667 于是, 在联合建厂方案总投资556千元中各处

分担费用为:

1处是c(1)-1(v)=2 30-19.6667=210.3333 0.6102 1.9142 -7.8613 -0.0618 0.0531 0.6899 r =-0.0926 -0.0775 -0.128 9-0.0357 0.4559 -0.0043 0.2887 0.2792 -0.2384 0.1198 -0.3943 0.1856 千元;

2处是c(2)-2(v)= 127.8334千元; 3处是c(3)-3(v)=217.8333 千元。

实验八 统计回归模型

一、实验的的和要求:

编制程序,解决统计回归模型问题。

二、实验内容和步骤:

1、掌握统计回归方法原理。

2、编制程序求解课本10.1牙膏销售量模型

3、分析实验结果。

三、实验现象及结果:

>> x1={-0.05 0.25 0.6 0 0.25 0.2 0.15 0.05 -0.15 0.15 0.2 0.1 0.4 0.45 0.35 0.3 0.5 0.5 0.4 -0.05 -0.05 -0.1 0.2 0.1 0.5 0.6 -0.05 0 0.05 0.55};

>> x2={5.5 6.75 7.25 5.5 7 6.5 6.75 5.25 5.25 6 6.5 6.25 7 6.9 6.8 6.8 7.1 7 6.8 6.5 6.25 6 6.5 7 6.8 6.8 6.5 5.75 5.8 6.8};

>> y={7.38 8.51 9.52 7.5 9.33 8.28 8.75 7.87 7.1 8 7.89 8.15 9.1 8.86 8.9 8.87 9.26 9 8.75 7.95 7.65 7.27 8 8.5 8.75 9.21 8.27 7.67 7.93 9.26};

>> X=[ones(30,1) x1' x2' (x2.^2)'];

>> [b,bint,r,rint,stats]=regress(y,X,alpha) b =18.0870 1.2622 -3.9616 0.3715 bint =

6.1877 29.9864

0.0366 0.1327 -0.0573 -0.0805 -0.1251 -0.2843 -0.2067 0.3013 0.2604 rint =-0.5346 -0.5432 -0.5319 -0.4786 0.0541 -0.4662 -0.1542 -0.0932 -0.6107 -0.3253 -0.8269 -0.2644 -0.4208 -0.6037 -0.3308 -0.2965 -0.5011 -0.6378 -0.5429 -0.4561 -0.5695 -0.8315 -0.7312 -0.5823 -0.6488 -0.2959 -0.1463 0.1658 -0.1896 -0.0187 -0.4083 -0.1848 0.1271 0.0799 0.2402 0.3495 0.3882 0.2742 0.4072 0.8577 0.4577 0.7316 0.6516 0.1340 0.5648 0.0383 0.6357 0.4939 0.3110 0.5961 0.6280 0.3866 0.2585 0.3820 0.4186 0.3194 0.0149 0.1626 0.2128 0.2355 0.5501

-0.1183 0.7208 -0.3746 0.5345 -0.1812 0.7020 -0.1882 0.6686 >>b,stats b =18.0870 1.2622 -3.9616 0.3715

stats =0.8993 77.3905 0.0000 0.0521

所y=18.0870+1.2622*x1-3.9616* x 2 +0.3715*( x 2)^2 (1)模型检验

β 0 的 置 信 区 间 为 [6.1877 29.9864] , β 1 的 置 信 区 间 为 [0.6102 1.9142] , β 2 的置信区间为[-7.8613 -0.0618] ,β 3 的置信区间为[0.0531 0.6899] r 2 =0.8993, F=77.3905, p=0.00002

因为p远小于α=0.05,所以,模型

y=18.0870+1.2622*x1-3.9616*x2+0.3715*(x2)^2从整体上看成立。 (2)进行残差分析:

>>rcopiot(r,rint)

Residual Case Order Plot0.80.60.40.2slaudis0Re -0.2-0.4-0.6-0.851015202530Case Number由图可知,除第五个数据外,其余数据的残差均离零点较近,且残差的置信2区间均包含零点,所以

y=18.0870+1.2622*x1-3.9616*x2+0.3715*(x2)^2能较好的符合原始数据,

而第五个数据可视为异常点。

(3)销售量预测:

>> x=[x1' x2'];

>> rstool(x,y,'purequadratic')

109.598.587.5700.10.20.30.40.55.566.57在上图x1和x2空白处填入对应的值,则会预测出销售量(y),当x1= 0.61875, x2=7.3 时,各自的销售量达到最大。销售量的置信区间[8.03246,8.56694], 上限用作库存管理的目标值下限用来把握公司的现金流 。

因篇幅问题不能全部显示,请点此查看更多更全内容