第四周3.
中的三个根。
,在求8] [0,041.76938.7911.1-)(2
3=-+=x x x x f function y=mj()for x0=0:0.01:8
x1=x0^3-11.1*x0^2+38.79*x0-41.769;if (abs(x1)<1.0e-8)x0
end
end
4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。
简单迭代法:
function y=jddd(x0)
x1=(20+10*x0-2*x0^2-x0^3)/20;k=1;
while (abs(x1-x0)>=1.0e-3)
x0=x1;
x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1;end x1k
埃特金法:
function y=etj(x0)
x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10;
x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=1;
while (abs(x3-x0)>=1.0e-3)
x0=x3;
x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10;
x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1;end
2
,020102)(023==-++=x x x x x f
x3
k
牛顿法:
function y=newton(x0)
x1=x0-fc(x0)/df(x0);
k=1;
while(abs(x1-x0)>=1.0e-3)
x0=x1;
x1=x0-fc(x0)/df(x0);k=k+1;
end
x1
k
function y=fc(x)
y=x^3+2*x^2+10*x-20;
function y=df(x)
y=3*x^2+4*x+10;
第六周
1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。
消去法:
x=a\d
或
[L,U]=lu(a);
x=inv(U)inv(L)d
Jacobi迭代法:
function s=jacobi(a,d,x0)
D=diag(diag(a));
U=-triu(a,1);
L=-tril(a,-1);
C=inv(D);
B=C*(L+U);
G=C*d;
s=B*x0+G;
n=1;
while norm(s-x0)>=1.0e-8
x0=s;
s=B*x0+G;
n=n+1;
end
n
Seidel迭代法:
function s=seidel(a,d,x0)
D=diag(diag(a));
U=-triu(a,1);
L=-tril(a,-1);
C=inv(D-L);
B=C*U;
G=C*d;
s=B*x0+G;
n=1;
while norm(s-x0)>=1.0e-5
x0=s;
s=B*x0+G;
n=n+1;
end
n
松弛法:
function s=loose(a,d,x0,w)
D=diag(diag(a));
U=-triu(a,1);
L=-tril(a,-1);
C=inv(D-w*L);
B=C*((1-w)*D+w*U);
G=w*C*d;
s=B*x0+G;
n=1;
while norm(s-x0)>=1.0e-8
x0=s;
s=B*x0+G;
n=n+1;
end
n
2.练习MATLAB的常用矩阵语句,就龙格现象函数(p88)练习插值语句interp,spline,并比较。
3.测得血液中某药物浓度随时间的变化值为:
t(h)0.250.5 1.0 1.5 2.0 3.0 4.0 6.08.010.0
19.3018.1515.3614.1012.899.327.55 5.24 3.86 2.88 C(mg
/L)
求t=0.45, 1.75, 5.0, 6.0时的浓度C.
分别用n=4,5,9的拉格朗日插值计算;并用样条函数插值计算,并比较结果。
拉格朗日插值:
function s=lagr(n)
x=[0.250.51.01.52.03.04.06.08.010.0];
y=[19.3018.1515.3614.1012.899.327.555.243.862.88];
x0=[0.451.755.06.0];
m=length(x0);
for i=1:m
D=abs(x-x0(i));
I=1;
while I<=n+1
for a=1:length(x)
if D(a)==min(D)
c(I)=a;
D(a)=max(D)+1;
break
end
end
I=I+1;
end
b=sort(c);
z=x0(i);
t=0.0;
for k=1:length(b)
u=1.0;
for j=1:length(b)
if j~=k
u=u*(z-x(b(j)))/(x(b(k))-x(b(j)));
end
end
t=t+u*y(b(k));
end
s(i)=t;
end
样条函数差值:
Interp1(x,y,x0,’spline’)
Spline(x,y,x0)
第八周
1.给定某药物浓度随时间的变化值(作业3),1)分别采用样条函数和三点公式(设h=0.1)求结点处的导数值,并比较结果。2)求该时间段的平均浓度(定步长S法)
样条函数:
x=[0.250.51.01.52.03.04.06.08.010.0];
y=[19.3018.1515.3614.1012.899.327.555.243.862.88];
pp=csape(x,y,'not-a-knot');
df=fnder(pp);
df1=ppval(df,x)
三点公式:
function df=sandian()
t=[0.250.51.01.52.03.04.06.08.010.0];
c=[19.3018.1515.3614.1012.899.327.555.243.862.88];
h=0.1;n=length(t);
for i=1:n
x0=t(i);
y0=c(i);
y1=spline(t,c,x0+h);
y2=spline(t,c,x0+2*h);
y3=spline(t,c,x0-h);
y4=spline(t,c,x0-2*h);
switch i
case1
df(i)=(-3*y0+4*y1-y2)/(2*h);
case n
df(i)=(y4-4*y3+3*y0)/(2*h);
otherwise
df(i)=(y1-y3)/(2*h);
end
end
end
平均浓度:
function averagec=simpson()
t=[0.250.51.01.52.03.04.06.08.010.0];c=[19.3018.1515.3614.1012.899.327.555.243.862.88];
m=(t(1)+t(10))/2;y=spline(t,c,m);averagec=(c(1)+4*y+c(10))/6;
end
2.练习MATLAB 常用的trapz,quad,quadl 等语句。计算:
x=0:8;
y=1./(sqrt(2.*pi)).*exp(-(x-4).^2./2);z=trapz(x,y)
function y=jifen(x)
y=1./(sqrt(2.*pi)).*exp(-(x-4).^2./2);q1=quad('jifen',0,8,1.0e-8)
q2=quadl('jifen',0,8,1.0e-8)
3.采用变步长经典R-K 法,ode23,ode45计算例9-5,并作比较。变步长经典R-K 法:(可能有问题)
function z=jdrk(m)x0=[252]';a=0;b=15;
n=length(x0);z=zeros(n,m);
k1=zeros(n,1);k2=zeros(n,1);k3=zeros(n,1);k4=zeros(n,1);t=a;
x=x0;x2=zeros(n,1);x3=x2;x4=x2;h=choose(m);m1=15/h+1;for k=1:m1
k1=prey(t,x);for i=1:n x2(i)=x(i)+1/2*h*k1(i);
end
k2=prey(t+h/2,x2);for i=1:n
8
2
)4(10;80,21)(2
---
≤≤≤=
επ
x e x f x
x3(i)=x(i)+1/2*h*k2(i);
end
k3=prey(t+h/2,x3);
for i=1:n
x4(i)=x(i)+h*k3(i);
end
k4=prey(t+h,x4);
for i=1:n
x(i)=x(i)+h/6*(k1(i)+2*k2(i)+2*k3(i)+k4(i));
z(i,k)=x(i);
end
t=t+h;
end
h1=length(z);
t2=[a:(b-a)/(h1-1):b];
plot(t2,z)
gtext('x1(t)')
gtext('x2(t)')
function h=choose(n)
h=15/(n-1);
t0=0;
x0=[252]';
k11=prey(t0,x0);
k21=prey(t0+h/2,x0+h/2*k11);
k31=prey(t0+h/2,x0+h/2*k21);
k41=prey(t0+h,x0+h*k31);
x1=x0+h/6*(k11+2*k21+2*k31+k41);
k12=prey(t0,x0);
k22=prey(t0+h/4,x0+h/4*k12);
k32=prey(t0+h/4,x0+h/4*k22);
k42=prey(t0+h/2,x0+h/2*k32);
x2=x0+h/12*(k12+2*k22+2*k32+k42);
if abs(x2-x1)<1.0e-5
while abs(x2-x1)<1.0e-5
h=h*2;
k11=prey(t0,x0);
k21=prey(t0+h/2,x0+h/2*k11);
k31=prey(t0+h/2,x0+h/2*k21);
k41=prey(t0+h,x0+h*k31);
x1=x0+h/6*(k11+2*k21+2*k31+k41);
k12=prey(t0,x0);
k22=prey(t0+h/4,x0+h/4*k12);
k32=prey(t0+h/4,x0+h/4*k22);
k42=prey(t0+h/2,x0+h/2*k32);
x2=x0+h/12*(k12+2*k22+2*k32+k42);
end
h=h/2;
else
while abs(x2-x1)>=1.0e-5
h=h/2;
k11=prey(t0,x0);
k21=prey(t0+h/2,x0+h/2*k11);
k31=prey(t0+h/2,x0+h/2*k21);
k41=prey(t0+h,x0+h*k31);
x1=x0+h/6*(k11+2*k21+2*k31+k41);
k12=prey(t0,x0);
k22=prey(t0+h/4,x0+h/4*k12);
k32=prey(t0+h/4,x0+h/4*k22);
k42=prey(t0+h/2,x0+h/2*k32);
x2=x0+h/12*(k12+2*k22+2*k32+k42);
end
end
function xdot=prey(t,x)
r=1;a=0.1;b=0.5;c=0.02;
xdot=[r-a*x(2)0;0-b+c*x(1)]*x;
ode23,ode45:
[t,x]=ode23('prey',[0:0.1:15],[252]);
plot(t,x)
[t,x]
gtext('x1(t)')
gtext('x2(t)')
[t,x]=ode45('prey',[0:0.1:15],[252]);
plot(t,x)
[t,x]
gtext('x1(t)')
gtext('x2(t)')
第十周
1.熟悉常用的概率分布、概率密度函数图、分位点。(统计工具箱)
2.对例10-1作统计分组(每组间隔分别为3cm、5cm),并作直方图,计算特征值与置信区间;如假设μ0=175作检验(α=0.05)
function y=zf(n)
data=[162166171167157168164178170152158153160174159167171 168182160159172178166159173161150164175173163165146163 162158164169170164179169178170155169160174159168151176 164161163172167154164153165161168166166148161163177178 171162156165176170156172163165149176170182159164179162 151170160165167155168179165184157];
m=ceil((max(data)-min(data))/n);
hist(data,m)
data=[162166171167157168164178170152158153160174159167171 168182160159172178166159173161150164175173163165146163 162158164169170164179169178170155169160174159168151176 164161163172167154164153165161168166166148161163177178 171162156165176170156172163165149176170182159164179162 151170160165167155168179165184157];
E=mean(data)
D=var(data)
[mu sigma muci sigmaci]=normfit(data,0.05)
[h,p,ci]=ttest(data,175,0.05,0)
3.自行寻找生物学数据,进行分析,试作曲线图、条形图、饼图。(包括图示)
第十二周
1、作图练习不同形式误差的叠加,随机误差+周期性误差;随机误差+线性误差;随机误差+恒定误差。(自行设计数据,注意误差数量级的选取)
2、作errorbar图(本课件Page3-A)
T=[5.012.520.025.028.533.036.046.050.055.0];
S=[141.1166.7198.9226.8241.7259.6283.1334.5354.2384.8];
E=[1.81.50.71.50.20.51.21.11.21.5];
errorbar(T,S,E)
xlabel('T/??')
ylabel('S/(g.kg-1of water)')
title('Solubility of|á-Form Glycine in Water')
3、异常数据剔除
拉依特准则:
function y=lyt()
x=[25.30725.11225.32425.30025.29525.29325.29425.31425.34125.315 25.31425.29925.30325.31325.31125.59025.30925.31625.31025.317 25.30625.29125.32525.01025.31525.438];
mu=mean(x);sigma=std(x);n=length(x);
if n<10
m=2;
else m=3;
for i=1:n
if abs(x(i)-mu)>m*sigma
i
x(i)
end
end
end
格鲁布斯准则:
function y=grubbs()
x=[25.30725.11225.32425.30025.29525.29325.29425.31425.34125.315 25.31425.29925.30325.31325.31125.59025.30925.31625.31025.317 25.30625.29125.32525.01025.31525.438];
mu=mean(x);sigma=std(x);n=length(x);
for i=1:n
if abs((x(i)-mu)/sigma)>=2.681%格鲁布斯极限值(n=26):0.005-3.157 0.01-3.0290.025-2.8410.05-2.681
i
x(i)
end
end
end
狄克逊准则:
x=[25.30725.11225.32425.30025.29525.29325.29425.31425.34125.315 25.31425.29925.30325.31325.31125.59025.30925.31625.31025.317 25.30625.29125.32525.01025.31525.438];
n4=0;
f=[0.3990.4060.4130.4210.4300.4400.4500.4620.4750.4900.5070.525 0.546];
while n4==0
z=sort(x);
n=length(x);
n5=1;
a=(z(3)-z(1))/(z(n-2)-z(1));
n1=0;
if a>f(n5)
n1=1;
z(1)
end
n2=0;
b=(z(n)-z(n-2))/(z(n)-z(3));
if b>f(n5)
n2=1;
z(n)
end
x1=[00];
if n1==1&&n2==0
for n3=1:(n-1)
x1(n3)=z(n3+1);
end
n5=n5+1;
end
if n1==1&&n2==1
for n3=1:(n-2)
x1(n3)=z(n3+1);
end
n5=n5+2;
end
if n1==0&&n2==1
for n3=1:(n-1)
x1(n3)=z(n3);
end
n5=n5+1;
end
x=x1;
if n1==0&&n2==0
n4=1;
end
end
第十四周:
1.大肠杆菌比生长速率测定。
在一定培养条件下,培养大肠杆菌,测得实验数据如下表。求:该条件下,大肠
杆菌的最大比生长速率μm,半饱和常数K s,并作模型检验。
S(mg/L)μ(h-1)S(mg/L)μ(h-1)60.061220.60 130.121530.66 330.241700.69 400.312210.70 640.432100.73 1020.53
s=[613334064102122153170221210];
mu=[0.060.120.240.310.430.530.600.660.690.700.73];
spmu=s./mu;n=length(s);
a=polyfit(s,spmu,1);
mum=1/a(1)
ks=a(2)/a(1)
lxx=sum(s.^2)-1/n*(sum(s))^2;
lyy=sum(spmu.^2)-1/n*(sum(spmu))^2;
lxy=sum(s.*spmu)-1/n*sum(s)*sum(spmu);
r=lxy/(sqrt(lxx*lyy))
R=corrcoef(s,spmu)
Qr=lxy^2/lxx;
Q=(lxx*lyy-lxy^2)/lxx;
F=Qr/(Q/(n-2))
2.多元线性回归
Pa=[9.08.68.47.57.06.86.56.0]';
Pb=[8.37.06.24.23.93.52.62.2]';
Pc=[2.74.45.48.39.19.710.911.8]';
r=[1.971.050.730.250.180.130.070.04]';
k0=ones(8,1);alpha=0.05;
r0=log(r);
Pa0=log(Pa);
Pb0=log(Pb);
Pc0=log(Pc);
p=[k0Pa0Pb0Pc0];
[b,bint,r,rint,stats]=regress(r0,p,alpha)
k=exp(b(1))
m=r'*r
p1=[Pa0Pb0Pc0];
stepwise(p1,r0)
第十六周
1.对作业(7)的两题,分别作非线性回归,并比较参数值和残差。function y=ecolinlin(beta0)
s=[613334064102122153170221210]';
mu=[0.060.120.240.310.430.530.600.660.690.700.73]'; [beta,r,J]=nlinfit(s,mu,'szsl',beta0);
mum=beta(1)
ks=beta(2)
r
J
function mu=szsl(beta,s)
mu=beta(1).*s./(beta(2)+s);
end
function y=reacnlin(beta0)
Pa=[9.08.68.47.57.06.86.56.0]';
Pb=[8.37.06.24.23.93.52.62.2]';
Pc=[2.74.45.48.39.19.710.911.8]';
R=[1.971.050.730.250.180.130.070.04]';
p=[Pa Pb Pc];
[beta,r,J]=nlinfit(p,R,'fydl',beta0);
k=beta(4)
n1=beta(1)
n2=beta(2)
n3=beta(3)
r
J
function r=fydl(beta,p)
r=beta(4).*p(:,1).^beta(1).*p(:,2).^beta(2).*p(:,3).^beta(3);
end
2.作二次正交回归。数据如右,比较不同模型计算结果。
x1=[1111-1-1-1-1-1.681.680000000000]';
x2=[11-1-111-1-100-1.681.6800000000]';
x3=[1-11-11-11-10000-1.681.68000000]';
y=[730.2780.5266.7224.5783.1837.5622.6538.3536.2221.2214.2926.2 702.4680.1868.5788.3856.5853.4772.6848.4]';
x=[x1x2x3];alpha=0.05;
rstool(x,y,'linear',alpha)
数学规划作业(MatLab) 1、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为()2 =+ f x ax bx (单位:元), 其中x是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问:工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a、b、c变化对计划的影响,并作出合理的解释. 解: 问题的分析和假设: 分析: 问题的关键在于由于工厂的生产能力足以满足每个季度用户的需求,但是为了使总费用最少,那么利用每个季度生产费用的不同,可用利用上个生产费用低的季度多生产来为下个季度进行准备,前提是本月节省下的费用减去总的发动机存储费用还有剩余,这样生产才有价值,才可能满足合同的同时又能使总费用最低。基本假设:1工厂的生产能力不受外界环境因素影响。2为使总费用最低,又能满足合同要求,各个季度之间的生产数量之间是有联系的。3第一季度开始时无存货。4工厂每季度的生关费用与本季度生产的发动机台数有关。5生产要按定单的数量来进行,生产的数量应和订单的数量相同,以避免生产出无用的机器。 符号规定:X1―――第一季度生产发动机的数量 X2―――第二季度生产发动机的数量
X3―――第三季度生产发动机的数量 建模: 1.三个季度发动机的总的生产量为180台。 2.每个季度的生产量和库存机器的数量之和要大于等于本季度的交货数量。 3.每个月的生产数量要符合工厂的生产能力。 4.将实际问题转化为非线性规划问题,建立非线性规划模型 目标函数 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(x1-40)+4(x1+x2-100) 整理,得 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(2x1+x2-140) 约束函数s.t x1+x2≥100; x1+x2+x3=180; 40≤x1≤100; 0≤x2≤100; 0≤x3≤100; 求解的Matlab程序代码: M-文件 fun.m: function f=fun (x); f=50*(x(1)+x(2)+x(3))+0.2*(x(1)^2+x(2)^2+x(3)^2)+4*(2*x(1) +x(2)-140)主程序fxxgh.m:
′ú??ò?£o % ?a?ü1y3ì?°??ò??ü??í3?? clear clc fid1=fopen('mingwen1.txt','r'); str1=fgets(fid1); fclose(fid1); fid2=fopen('jiemihou1.txt','r'); str2=fgets(fid2); fclose(fid2); % é?è¥μ¥′ê????μ?????oí±êμ?·?o? ad=find(str2==',');str2(ad)='';ad=find(str2=='.');str2(ad)='';ad=find(str2==';') ;str2(ad)=''; ad=find(str2=='''');str2(ad)='';ad=find(str2=='?');str2(ad)='';ad=find(str2=='£o');str2(ad)=''; ad=find(str2=='"');str2(ad)='';ad=find(str2=='-');str2(ad)='';ad=find(str2= ='/');str2(ad)=''; ad=find(str2==' ');str2(ad)=''; for i=0:25; ad=find(str1=='A'+i);str1(ad)='a'+i; end for i=0:25; ad=find(str2=='A'+i);str2(ad)='a'+i; end n1(1,26)=0; n2(1,26)=0; n1(1)=sum(str1=='a');n2(1)=sum(str2=='a'); n1(2)=sum(str1=='b');n2(2)=sum(str2=='b'); n1(3)=sum(str1=='c');n2(3)=sum(str2=='c'); n1(4)=sum(str1=='d');n2(4)=sum(str2=='d'); n1(5)=sum(str1=='e');n2(5)=sum(str2=='e'); n1(6)=sum(str1=='f');n2(6)=sum(str2=='f'); n1(7)=sum(str1=='g');n2(7)=sum(str2=='g'); n1(8)=sum(str1=='h');n2(8)=sum(str2=='h'); n1(9)=sum(str1=='i');n2(9)=sum(str2=='i'); n1(10)=sum(str1=='j');n2(10)=sum(str2=='j'); n1(11)=sum(str1=='k');n2(11)=sum(str2=='k'); n1(12)=sum(str1=='l');n2(12)=sum(str2=='l'); n1(13)=sum(str1=='m');n2(13)=sum(str2=='m'); n1(14)=sum(str1=='n');n2(14)=sum(str2=='n'); n1(15)=sum(str1=='o');n2(15)=sum(str2=='o');
第1讲MATLAB及 在数学建模中的应用 ? MatLab简介及基本运算?常用计算方法 ?应用实例
一、 MatLab简介及基本运算 1.1 MatLab简介 1.2 MatLab界面 1.3 MatLab基本数学运算 1.4 MatLab绘图
1.1 MatLab简介?MATLAB名字由MATrix和 LABoratory 两词组成。20世纪七十年代后期, 美国新墨西哥大学计算机科学系主任Cleve Moler教授为减轻学生编程负担,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。
?经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。
?1997年春,MATLAB5.0版问世,紧接着是5.1、5.2、5.3、6.0、6.1、6.5、7.0版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 ?20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。
?MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ①可靠的数值运算和符号计算。在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函 数可使用。 ②强大的绘图功能。 MATLAB可以绘制各种图形,包括二维和三维图形。 ③简单易学的语言体系。 ④为数众多的应用工具箱。
数学实验与数学建模 实验报告 学院: 专业班级: 姓名: 学号: 完成时间:年月日
承 诺 书 本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。若承诺不实,本人愿意承担一切责任。 承诺人: 年 月 日 数学实验学习体会 (每个人必须要写字数1200字以上,占总成绩的20%) 练习1 一元函数的图形 1. 画出x y arcsin =的图象. 2. 画出x y sec =在],0[π之间的图象. 3. 在同一坐标系中画出x y =,2x y =,3 x y = ,3x y =,x y =的图象. 4. 画出3 2 3 2)1()1()(x x x f + +-=的图象,并根据图象特点指出函数)(x f 的奇偶性. 5. 画出)2ln(1++=x y 及其反函数的图象. 6. 画出3 21+=x y 及其反函数的图象.
练习2 函数极限 1.计算下列函数的极限. (1) x x x 4 cos 1 2 sin 1 lim 4 - + π → . 程序: sym x; f=(1+sin(2*x))/(1-cos(4*x)); limit(f,x,pi/4) 运行结果: lx21 ans = 1 (2). 程序: sym x; f=(1+cos(x))^(3*sec(x)); limit(f,x,pi/2) 运行结果: lx22 ans = exp(3) (3) 2 2 ) 2 ( sin ln lim x x x - π π → . 程序: sym x; f=log(sin(x))/(pi-2*x)^2; limit(f,x,pi/2) 运行结果: lx23 ans = -1/8 (4) 2 1 2 lim x x e x →. 程序: x x x sec 3 2 ) cos 1( lim+ π →
第四章作业 第二题: 针对严重的交通情况,国家质量监督检验检疫局发布的国家标准,车辆驾驶人员血液中的酒精含量大于或等于20mg/100ml,小于80mg/100ml 为饮酒驾车,血液中的酒精含量大于或等于80mg/100ml 的为醉酒驾车。 下面分别考虑大李在很短时间内和较长时间内(如2个小时)喝了三瓶啤酒,多长时间内驾车就会违反新的国家标准。 1、 问题假设 大李在短时间内喝下三瓶啤酒后,酒精先从吸收室(肠胃)吸收进中心室(血液和体液),然后从中心室向体外排除,忽略喝酒的时间,根据生理学知识,假设 (1) 吸收室在初始时刻t=0时,酒精量立即为 32 D ;在任意时刻,酒精从吸收室吸收进中心室的速率(吸收室在单位时间内酒精含量的减少量)与吸收室的酒精含量成正比,比例系数为1k ; (2) 中心室的容积V 保持不变;在初始时刻t=0时,中心室的酒精含量为0;在任意时 刻,酒精从中心室向体外排除的速率(中心室在单位时间内酒精含量的减少量)与 中心室的酒精含量成正比,比例系数为2k ; (3) 在大李适度饮酒没有酒精中毒的前提下,假设1k 和2k 都是常量,与饮酒量无关。 2、 符号说明 酒精量是指纯酒精的质量,单位是毫克; 酒精含量是指纯酒精的浓度,单位是毫克/百毫升; ~t 时刻(小时) ; ()~x t 在时刻t 吸收室(肠胃)内的酒精量(毫克) ; 0~D 两瓶酒的酒精量(毫克); (t)~c 在时刻t 吸收室(血液和体液)的酒精含量(毫克/百毫升) ; 2()~c t 在时刻t 中心室(血液和体液)的酒精含量(毫克/百毫升); ~V 中心室的容积(百毫升) ; 1~k 酒精从吸收室吸收进中心室的速率系数(假设其为常数2.0079); 2~k 酒精从中心室向体外排除的速率系数(假设其为常数0.1855); 3~k 在短时间喝下三瓶酒的假设下是指短时间喝下的三瓶酒的酒精总量除以中心室体积, 即03/2D V ;而在较长时间内(2小时内)喝下三瓶酒的假设下就特指03/4D V .
Matlab在数学建模中的应用 数学建模是通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,用数学语言和方法建立变量参数间的内在关系,得出一个可以近似刻画实际问题的数学模型,进而对其进行求解、模拟、分析检验的过程。它大致分为模型准备、模型假设、模型构成、模型求解、模型分析、模型检验及应用等步骤。这一过程往往需要对大量的数据进行分析、处理、加工,建立和求解复杂的数学模型,这些都是手工计算难以完成的,往往在计算机上实现。在目前用于数学建模的软件中,matlab 强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。 1 Matlab在数学建模中的应用 下面将联系数学建模的几个环节,结合部分实例,介绍matlab 在数学建模中的应用。 1.1 模型准备阶段 模型准备阶段往往需要对问题中的给出的大量数据或图表等进行分析,此时matlab的数据处理功能以及绘图功能都能得到很好的应用。 1.1.1 确定变量间关系 例1 已知某地连续20年的实际投资额、国民生产总值、物价指数的统计数据(见表),由这些数据建立一个投资额模型,根据对未来国民生产总值及物价指数的估计,预测未来的投资额。
表1 实际投资额、国民生产总值、物价指数的统计表 记该地区第t年的投资为z(t),国民生产总值为x(t),物价指数为y(t)。 赋值: z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4 195 229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]' x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9 1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7 3073]' y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145 0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342 1.7842 1.9514 2.0688]' 先观察x与z之间,y与z之间的散点图 plot(x,z,'*') plot(y,z,'*') 由散点图可以看出,投资额和国民生产总值与物价指数都近似呈
第四周 3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end 2 ,020102)(023==-++=x x x x x f
x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;
本文由qpadm贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 第 25 卷第 4 期 2009 年 4 月 电 力 For personal use only in study and research; not for commercial use 科 学 与 For personal use only in study and research; not for commercial use 工 程 Vol.25, No.4 Apr., 2009 11 For personal use only in study and research; not for commercial use Electric Power Science and Engineering 基于 MATLAB 的光伏电池通用数学模型 王长江 For personal use only in study and research; not for commercial use (华北电力大学电气与电子工程学院,北京 102206)摘要:针对光伏电池输出特性具有强烈的非线性,根据太阳能电池的直流物理模型,利用 MATLAB 建立了太阳能光伏阵列通用的仿真模型。利用此模型,模拟任意环境、太阳辐射强度、电池板参数、电池板串并联方式下的光伏阵列 I-V 特性。模型内部参数经过优化,较好地反应了电池实际特性。模型带有最大功率点跟踪功能,能很好地实现光伏发电系统最佳工作点的跟踪。关键词:光伏电池;MPPT;I-V 特性中图分类号:TM615 文献标识码:A 引 言 1 光伏电池特性 随着化石能源的消耗,全球都在面临能源危机,太阳能依靠其清洁、分布广泛等特点成为当今发展速度居第二位的能源 [1] 。光伏阵列由多个单体太阳能电池进行串并联封装而成,是光伏发电的能源供给中心,其 I V 特性曲线随日照强度和太阳能电池温度变化,即 I=f ( V, S, T ) 。目前而厂家通常仅为用户提供标准测试的短路电流 I sc 、开路电压 Voc、最大功率点电流 I m 、最大功率点电压 V m 值,所以如何根据已有的标准测试数据来仿真光伏阵列在不同日照、温度下的 I V,P V 特性曲线,在光伏发电系统分析研究中显得至关重要 [2] 。文献 [ 3~4 ] 介绍了一些光伏发电相关的仿真模型,但这些模型都需要已知一些特定参数,使得分析研究有一些困难。文献 [ 5 ] 介绍了经优化的光伏电池模型,但不能任意改变原始参数。文献 [ 6 ] 给出了光伏电池的原理模型,但参数选用典型值,会造成较大的误差。本文考虑工程应用因素,基于太阳能电池的物理模型,建立了适用于任何条件下的工程用光伏电池仿真模型。
Modeling and Simulation 建模与仿真, 2015, 4(3), 61-71 Published Online August 2015 in Hans. https://www.wendangku.net/doc/9b10719096.html,/journal/mos https://www.wendangku.net/doc/9b10719096.html,/10.12677/mos.2015.43008 Study of MATLAB and Its Application in Mathematical Modeling Chuanqi Qin, Ting Wang, Yuanfeng Jin School of Science, Yanbian University, Yanji Jilin Email: yfkim@https://www.wendangku.net/doc/9b10719096.html, Received: Jul. 22nd, 2015; accepted: Aug. 11th, 2015; published: Aug. 18th, 2015 Copyright ? 2015 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.wendangku.net/doc/9b10719096.html,/licenses/by/4.0/ Abstract This article firstly introduces the development and the features of MATLAB software. And then the concept and the process of mathematical modeling are explained. After, the article briefly intro-duces some MATLAB solution methods of mathematical modeling problems, giving several in-stances of some methods. At the last of this article, through a relatively complete example, it fo-cuses on the application of MATLAB in mathematical modeling. It has been found that the applica-tion of MATLAB in mathematical modeling can improve the efficiency and quality of mathematical modeling, enrich the means and methods of mathematical modeling, and play a very important role in the teaching of mathematical modeling course. Keywords MATLAB, Mathematical Modeling, Mathematic Model MATLAB及其在数学建模中的应用 秦川棋,王亭,金元峰 延边大学理学院,吉林延吉 Email: yfkim@https://www.wendangku.net/doc/9b10719096.html, 收稿日期:2015年7月22日;录用日期:2015年8月11日;发布日期:2015年8月18日
******大学 本科实验报告 课程名称:****建模与仿真 设计专题:单服务员的排队模型学生姓名:*** 学号:********** 2012年04月30日
一、实验题目和要求 实验题目: 在某商店有一个售货员,顾客陆续来到,售货员 逐个地接待顾客。当到来的顾客较多时,一部分 顾客便须排队等待,被接待后的顾客便离开商店。 设:a.顾客到来间隔时间服从参数为5分钟的指 数分布;b.对顾客的服务时间服从[3,12]上的均 匀分布;c.排队按先到先服务规则,队长无限制, 并假定一个工作日为8小时,时间以分钟为单位。 要求: 1)模拟1个工作日内完成服务的个数及顾客平均 等待时间t。 2)模拟10个工作日,求出平均每日完成服务的个 数及每日顾客的平均等待时间 3)用柱状图画出10个工作日的平均每日完成的 服务个数及每日顾客的平均等待时间。 二、程序结构图(或功能说明) 文件夹中的m文件在j取1时模拟单工作日的服务 情况,j取1到10时模拟10个工作日的服务情况。 三、程序流程图
NO YES NO i=i+1 计算第i 个顾客离开时的时刻t 计算第i+1个顾客的等待时间s 记录i 值,跳出循环 计算第i+1个顾客的等待时间s 计算第i 个顾客离开时的时刻t 构造顾客间隔时间序列(TjM ) 构造顾客所需服务时间序列(TfM ) t>480 j=1
YES NO YES NO j=j+1 i=i+1 计算第i 个顾客离开时的时刻t 计算第i+1个顾客的等待时间s 记录i 值,跳出循环 计算第i+1个顾客的等待时间s 计算第i 个顾客离开时的时刻t 构造顾客间隔时间序列(TjM ) 构造顾客所需服务时间序列(TfM ) t>480 j=1 j<10
1求1到20的阶乘和M文件 function p=fac(n) %fac函数由于阶乘 if n==0 p=1; else p=1; i=1; while i<=n p=p*i; i=i+1; end end clear sum=0; for i==1:20 sum=sum+fac(i) end sum (1)
(2)运行结果 2、用起泡法排数 clc clear all s=[9 8 4 2 7 10 6 1 5 3]; %要排序的数列Ls=length(s); for i=1:Ls-1 for j=1:Ls-i if s(j)>s(j+1) t=s(j); s(j)=s(j+1); s(j+1)=t; end
end end s %输出排序后结果 结果 3、matlab 有一函数 f(x,y)=x2+cos(xy)+2y ,写一程序,输入自变量的值,输出函数值. function z= yourfunc(x,y) % script for f(x,y)=x2+cos(xy)+2y % input scalar: x, y % output scalar: z % written by yourname % 10 May 2010 z=x^2+cos(x*y)+2*y;
end 运行结果 4、小球下落问题 h = zeros(11,1); h(1) = 100; for i = 2:11 h(i) = h(i-1)/2; end % 第10次反弹有多高?h(11)
% 它在第10次落地时,共经过多少米? 2*sum(h(1:10))-h(1) 结果如下 5、矩阵问题 有一个4行5列的矩阵,编程求出其最大值以及最大值所处位置clc; clear all; A = rand(4, 5); m = A(1); ind = [1 1]; for i = 1 : size(A, 1) for j = 1 : size(A, 2) if m < A(i, j)
第四周3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj()for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769;if (abs(x1)<1.0e-8)x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20;k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1;end x1k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1;end 2 ,020102)(023==-++=x x x x x f
x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while(abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;
数学建模培训作业 (MATLAB 编程部分) 1. 请使用switch 语句将百分制的学生成绩转换为五级制的成绩输出。 2. 猜数游戏:首先由计算机随机产生一个 [1,100] 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 “High” ,小于则显示 “ Low ” ,等于则显示 “You won !”,同时退出游戏。用户最多有 7 次机会。 3. 使用for 结构计算1+2+3+…+100。 4. 设计一个九九乘法表。 5. 使用while 结构计算1+2+3+…+100。 6. 求1!+2!+ …+10!的值。 7. 编程生成三对角矩阵。 1 10000011100000001110000000111000000011100 000001110000000111000000011100 1 1 轾犏犏犏犏犏犏犏 犏犏 犏犏犏犏犏犏犏犏臌 8. 计算分段函数的值,要求根据不同的x 输入,给出相应的结果。 223135 x x y x x ì?-???+??=í?-????+?? 110011x x x x ?-< ?> 9. 已知1 1111 1(1)435721 n n p -?+-++-- ,编程求 的近似值。 10. 输入下面的矩阵
12345678 910111213141516A 轾犏犏犏=犏犏 犏臌 编程求该矩阵的对角线元素之和,并找出最大和最小元素的值以及其所在的行、列号。 11. 求水仙花数。如果一个三位数的个位数、十位数和百位数的立方和等于该数自身, 则称该数为水仙花数。编一程序求出所有的水仙花数。 12. 给定两个实数a 、b 和一个正整数n ,计算()k a b +和()k a b -,其中n k ,,2,1 。 13. 编写函数,生成一个1!,2!,…,n!的阶乘表。 14. 编一个函数统计字符串中单词的个数。 15. 求n 阶勒让德多项式的值,其递归公式为: (,)((2* 1)**(1,) (p n x n x p n x n p n n =----- (0,) 1;(1,p x p x x == 16. 编写一个判断任意输入正整数是否为素数的函数文件,并在命令窗口调用。 17. 编写一个万年历计算程序,当输入年月日后,能够计算出该日是星期几。
2、已知速度曲线v(t) 上的四个数据点下表所示 t=[0.15,0.16,0.17,0.18]; v=[3.5,1.5,2.5,2.8]; x=0.15:0.001:0.18 y=i n t e r p1(t,v,x,'s p l i n e') S=t r a p z(x,y) p=p o l y f i t(x,y,5); d p=p o l y d e r(p); d p x=p o l y v a l(d p,0.18) 运行结果 S= 0.0687 Dpx=- 3、计算图片文件tu.bmp 给出的两个圆A,B 的圆心,和两个圆的两条外公切线和两条内公切线的切点的坐标。 (1)计算A 圆的圆心坐标 I=imread('tu.bmp'); [m,n]=size(I) BW=im2bw(I) BW(:,200:512)=1; figure, imshow(BW) ed=edge(BW); [y,x]=find(ed); x0=mean(x), y0=mean(y) r1=max(x)-min(x),r2=max(y)-min(y) r=(r1+r2)/4 x0 =109.7516 y0 =86.7495 r1 =162 r2 =158 r =80 (2)B圆的圆心坐标和半径 I=imread('tu.bmp'); BW=im2bw(I) BW(:,1:200)=1; imshow(BW) ed=edge(BW); [y,x]=find(ed); x0=mean(x), y0=mean(y) r1=max(x)-min(x),r2=max(y)-min(y) r=(r1+r2)/4 x0 =334.0943 y0 =245.7547 r1 =165 r2 =158 r = 80.7500
数学建模MATLAB 语言及应用上机作业1 1. 在matlab 中建立一个矩阵135792468101234501234A ???? ? ?=??-----???? 答案: A = [1,3,5,7,9;2,4,6,8,10;-1,-2,-3,-4,-5;0,1,2,3,4] 2. 试着利用matlab 求解出下列方程的解(线性代数22页例14) 1234124 23412342583692254760 x x x x x x x x x x x x x x +-+=??--=?? -+=-??+-+=? 答案: A=[2 ,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]; B=[8;9;-5;0]; X=A\B 或 A=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6] b=[8,9,-5,0]' X=inv(A)*b 3. 生成一个5阶服从标准正态分布的随机方阵,并计算出其行列式的值,逆矩阵以及转置矩阵。 答案: A=randn(5) det(A) inv(A) A' 4. 利用matlab 求解出 110430002A -?? ??=-?? ???? 的特征值和特征向量。 答案: A=[-1,1,0;-4,3,0;0,0,2] [V,D]=eig(A)
5.画出衰减振荡曲线3 sin3t y e t -=在[0,4]π上的图像。 要求,画线颜色调整为黑色,画布底面为白色。 (在实际中,很多打印机时黑白的,因此大多数作图要考虑黑白打印机的效果。) 给出恰当的x ,y 坐标轴标题,图像x 轴的最大值为4π。 6. 生成一个0-1分布的具有10个元素的随机向量,试着编写程序挑选出向量中大于0.5的元素。 数学建模和Matlab 上机作业2(2016-9-20) 跟老师做(不用整合进作业中): 上机演示讲解:函数,递归的两个例子的写法。 附: 1. Fibonacci Sequence (斐波那契数列) 在数学上,费波那西数列是以递归的方法来定义: F1= 1;F2= 1;F (n )=F (n-1)+F (n-2) 2. 阶乘举例: 数学描述:n!=1×2×……×n ;计算机描述:n!=n*(n-1)! 自己做(需要整合进作业中,提交到系统中): 1. 写一个m 文件完成分值百分制到5分制的转换(即输入一个百分制,转换后输出一个5级对应的得分,联系条件控制语句)。 对应规则如下: 优秀[90,100] 良好[80,90) 中等[70,80) 及格[60,70) 不及格[0,60] 完成函数后,利用命令行对所写的函数进行测试。 答案: score=input('your score is: '); if score>=90 && score<=100 disp('优秀'); if score>=80 && score<90 disp('良好'); if score>=70 && score<80 disp('中等'); if score>=60 && score<70 disp('及格'); if score>=0 && score<60 disp('不及格'); else disp('请输入正确的成绩');
应用MATLAB 的一个例子 ——数学也是一门技术 王天顺 整理 本来想用 “数学也是一门技术”作题目,主要是基于两点,一是从数学的应用角度,它的确具备了作为一门技术的特征,这也就是今天我要通过一个例子要表达的;二是咱们在座的大多数都是从事职业教育的老师,不知道我理解得是不是正确,职业教育与普通教育的区别是较为侧重于教授技术,我主观上感觉这个题目和大家的关系更紧密一些。但是,这个题目有点太大了!和领导商量了一下还是换个题目吧。 首先可以证明:数学确是一门技术,比如说要从技术的定义入手,流行的做法是:查查《辞海》,查查相关的如《科学学辞典》和《科技辞典》等等,看看他们是怎样给技术定义的;其次,论述一下数学的确是符合这些定义的。 实际上,我也确实查阅过这些资料,可以说没有问题,一定可以找到证据证明这个论断! 注:“技术”一词的中文解释有两种,一种是以《辞海》为代表的解释,把技术定义为:(1 )泛指根据生产实践经验和自然科学原理而发展成的各种工艺操作方法与技能;(2)除操作技能外, 广义的还包括相应的生产工具和其他物质设备,以及生产的工艺过程或作业程序、方法。另一种是以《科学学辞典》和《科技辞典》为代表的解释,把技术定义为:是为社会生产和人类物质文化生活需要服务的,供人类利用和改造自然的物质手段、智能手段和信息手段的总和。 可见, “技术”一词所包含的内容除了有形的物化形态之外,还包括无形的智能形态方面。无形的智能形态的技术是客观存在的,在某种意义上说,这方面技术的作用并不亚于物化形态的技术,更不能为物化形态技术所取代(背景资料)。因此,有关“技术”的涵义,有人概括为:指的是有形的物化技术和无形的智能技术的总和。 当然,容易想到我们把数学看作一门技术,可能更多的是从技术的无形“智能形态”角度论述的。我想这只是他的一个方面,今天先给各位介绍的是一个例子,展现他的另一个方面,用数学(包括相关的软件)去解决一个实际问题,其过程就像“传统的”、物化形态的技术一样;其次,结合上述例子,探讨有关数学建模及相关培训指导工作的一般原则和步骤,谈一点个人对此项工作的认识;最后,介绍我校的这些年数学建模培训工作的一些具体做法。 一、足球比赛中的吊门问题 1. 问题:只考虑如下的因素:球与球门的距离为a ,守门员与球门的距离为b (假设在调 门过程中,守门员不能移动),球门高h ,守门员最大摸高H ,球出脚的初速度为0v ,与水平方向的夹角为α(称为初射角).针对下列数据求能吊门成功的α,h=2.44m ,H=3.20m ,s m v /300= ,重力加速度g=10m/s 2,针对下列几组数据分别给出具体能吊门成功的相应初射角范围,要求精度在小数点后第4位。 (1) a=6m ,b=1m ; (2) a=10m ,b=3m ; (3) a=20m ,b=5m ; 2. 问题分析 (1) 在不考虑空气阻力的情况下,抛射体的运动轨迹是抛物线:
第四周 3. function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度( 分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end x3 k 牛顿法: function y=newton(x0)
x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G; n=n+1; end n Seidel迭代法: function s=seidel(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1);
m a t l a b数学建模实例集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#
第四周3. function y=mj() for x0=0::8 x1=x0^*x0^2+*; if (abs(x1)< x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>= x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>= x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0);
k=1; while (abs(x1-x0)>= x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>= x0=s; s=B*x0+G; n=n+1; end n Seidel迭代法: function s=seidel(a,d,x0) D=diag(diag(a));