nbhkdz.com冰点文库

matlab数学建模实例

时间:2018-07-01


第四周 3.

求f (x) ? x3 -11.1x2 ? 38.79 x ? 41.769? 0, 在[0, 8] 中的三个根。
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) end x0

end

4. 分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(?分别取 10-3、10-5、10-8) 。

f ( x) ? x 3 ? 2 x 2 ? 10 x ? 20 ? 0, x0 ? 2
简单迭代法: 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;

第六周 、Jacobi迭代法、Seidel迭 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)
代法、松弛法求解,并比较收敛速度。

消去法: 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;

end n

n=n+1;

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 就龙格现象函数 (p88) 练习插值语句interp, spline, 2.练习MATLAB的常用矩阵语句, 并比较。

3.测得血液中某药物浓度随时间的变化值为:

t(h) C(mg /L)

0.25 19.30

0.5 18.15

1.0 15.36

1.5 14.10

2.0 12.89

3.0 9.32

4.0 7.55

6.0 5.24

8.0 3.86

10.0 2.88

求t=0.45, 1.75, 5.0, 6.0 时的浓度C. 分别用n=4,5,9的拉格朗日插值计算;并用样条函数插值计算,并比较结果。 拉格朗日插值:
function s=lagr(n) x=[0.25 0.5 1.0 1.5 2.0 3.0 4.0 6.0 8.0 10.0]; x0=[0.45 1.75 5.0 6.0]; m=length(x0); for i=1:m I=1;

y=[19.30 18.15 15.36 14.10 12.89 9.32 7.55 5.24 3.86 2.88];

D=abs(x-x0(i)); while I<=n+1

for a=1:length(x) c(I)=a; break

if D(a)==min(D) D(a)=max(D)+1; end

end end

I=I+1;

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 end u=u*(z-x(b(j)))/(x(b(k))-x(b(j)));

end end end

t=t+u*y(b(k));

s(i)=t;

样条函数差值: Interp1(x,y,x0,’spline’) Spline(x,y,x0) 第八周 1.给定某药物浓度随时间的变化值(作业3),1)分别采用样条函数和三点公式 (设h=0.1)求结点处的导数值,并比较结果。2)求该时间段的平均浓度(定 步长S法) 样条函数:
x=[0.25 0.5 1.0 1.5 2.0 3.0 4.0 6.0 8.0 10.0]; pp=csape(x,y,'not-a-knot'); df=fnder(pp); df1=ppval(df,x) y=[19.30 18.15 15.36 14.10 12.89 9.32 7.55 5.24 3.86 2.88];

三点公式:
function df=sandian() t=[0.25 0.5 1.0 1.5 2.0 3.0 4.0 6.0 8.0 10.0]; h=0.1;n=length(t); for i=1:n x0=t(i); y0=c(i); y1=spline(t,c,x0+h); y3=spline(t,c,x0-h); switch i

c=[19.30 18.15 15.36 14.10 12.89 9.32 7.55 5.24 3.86 2.88];

y2=spline(t,c,x0+2*h); y4=spline(t,c,x0-2*h); case 1 case n

df(i)=(-3*y0+4*y1-y2)/(2*h); df(i)=(y4-4*y3+3*y0)/(2*h); df(i)=(y1-y3)/(2*h);

otherwise end

end end

平均浓度:
function averagec=simpson()

t=[0.25 0.5 1.0 1.5 2.0 3.0 4.0 6.0 8.0 10.0]; m=(t(1)+t(10))/2; y=spline(t,c,m); end

c=[19.30 18.15 15.36 14.10 12.89 9.32 7.55 5.24 3.86 2.88];

averagec=(c(1)+4*y+c(10))/6;

2.练习MATLAB常用的trapz, quad, quadl等语句。计算:
f ( x) ?
x=0:8;

1 ? e 2?

( x?4)2 2

, 0 ? x ? 8; ? ? 10 ?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) n=length(x0); z=zeros(n,m); x0=[25 2]';a=0;b=15;

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 end x2(i)=x(i)+1/2*h*k1(i);

k2=prey(t+h/2,x2); for i=1:n

end

x3(i)=x(i)+1/2*h*k2(i);

k3=prey(t+h/2,x3); for i=1:n end x4(i)=x(i)+h*k3(i);

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 end

t=t+h;

h1=length(z); plot(t2,z)

t2=[a:(b-a)/(h1-1):b]; gtext('x1(t)') gtext('x2(t)')

function h=choose(n) h=15/(n-1); t0=0; x0=[25 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); k12=prey(t0,x0); x1=x0+h/6*(k11+2*k21+2*k31+k41); 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); if abs(x2-x1)<1.0e-5 h=h*2; x2=x0+h/12*(k12+2*k22+2*k32+k42); while abs(x2-x1)<1.0e-5 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); k12=prey(t0,x0); x1=x0+h/6*(k11+2*k21+2*k31+k41); 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); end else x2=x0+h/12*(k12+2*k22+2*k32+k42);

h=h/2; 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); k12=prey(t0,x0); x1=x0+h/6*(k11+2*k21+2*k31+k41); 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); end x2=x0+h/12*(k12+2*k22+2*k32+k42);

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],[25 2]); plot(t,x) [t,x]

gtext('x1(t)') gtext('x2(t)') [t,x]=ode45('prey',[0:0.1:15],[25 2]); 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=[162 166 171 167 157 168 164 178 170 152 158 153 160 174 159 167 171 168 182 160 159 172 178 166 159 173 161 150 164 175 173 163 165 146 163 162 158 164 169 170 164 179 169 178 170 155 169 160 174 159 168 151 176 164 161 163 172 167 154 164 153 165 161 168 166 166 148 161 163 177 178 171 162 156 165 176 170 156 172 163 165 149 176 170 182 159 164 179 162 151 170 160 165 167 155 168 179 165 184 157]; m=ceil((max(data)-min(data))/n); hist(data,m)

data=[162 166 171 167 157 168 164 178 170 152 158 153 160 174 159 167 171 168 182 160 159 172 178 166 159 173 161 150 164 175 173 163 165 146 163 162 158 164 169 170 164 179 169 178 170 155 169 160 174 159 168 151 176 164 161 163 172 167 154 164 153 165 161 168 166 166 148 161 163 177 178 171 162 156 165 176 170 156 172 163 165 149 176 170 182 159 164 179 162 151 170 160 165 167 155 168 179 165 184 157]; 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图(本课件Page 3-A)
T=[5.0 12.5 20.0 25.0 28.5 33.0 36.0 46.0 50.0 55.0]; E=[1.8 1.5 0.7 1.5 0.2 0.5 1.2 1.1 1.2 1.5]; errorbar(T,S,E) xlabel('T/??') S=[141.1 166.7 198.9 226.8 241.7 259.6 283.1 334.5 354.2 384.8];

ylabel('S/(g.kg-1 of water)')

title('Solubility of ??-Form Glycine in Water')

3、异常数据剔除

拉依特准则:
function y=lyt() x=[25.307 25.112 25.324 25.300 25.295 25.293 25.294 25.314 25.341 25.315 25.314 25.299 25.303 25.313 25.311 25.590 25.309 25.316 25.310 25.317 25.306 25.291 25.325 25.010 25.315 25.438]; mu=mean(x);sigma=std(x);n=length(x); if n<10 m=2;

else m=3; for i=1:n i if abs(x(i)-mu)>m*sigma x(i)

end end

end

格鲁布斯准则:
function y=grubbs() x=[25.307 25.112 25.324 25.300 25.295 25.293 25.294 25.314 25.341 25.315 25.314 25.299 25.303 25.313 25.311 25.590 25.309 25.316 25.310 25.317 25.306 25.291 25.325 25.010 25.315 25.438]; mu=mean(x);sigma=std(x);n=length(x); for i=1:n if abs((x(i)-mu)/sigma)>=2.681 0.01-3.029 0.025-2.841 0.05-2.681 i x(i)

%格鲁布斯极限值(n=26):0.005-3.157

end end

end

狄克逊准则:

x=[25.307 25.112 25.324 25.300 25.295 25.293 25.294 25.314 25.341 25.315 25.314 25.299 25.303 25.313 25.311 25.590 25.309 25.316 25.310 25.317 25.306 25.291 25.325 25.010 25.315 25.438]; n4=0;

f=[0.399 0.406 0.413 0.421 0.430 0.440 0.450 0.462 0.475 0.490 0.507 0.525 0.546]; while n4==0

z=sort(x); n5=1; n1=0;

n=length(x); a=(z(3)-z(1))/(z(n-2)-z(1)); 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=[0 0];

if n1==1&&n2==0

for n3=1:(n-1) end

x1(n3)=z(n3+1);

end

n5=n5+1;

if n1==1&&n2==1

for n3=1:(n-2) end

x1(n3)=z(n3+1);

end

n5=n5+2;

if n1==0&&n2==1

for n3=1:(n-1) end

x1(n3)=z(n3);

end

n5=n5+1;

x=x1;

if n1==0&&n2==0 n4=1;

end

end

第十四周: 1.大肠杆菌比生长速率测定。 在一定培养条件下,培养大肠杆菌,测得实验数据如下表。求:该条件下,大肠 杆菌的最大比生长速率μm,半饱和常数Ks,并作模型检验。 S(mg/L) 6 13 33 40 64 102 μ (h-1) 0.06 0.12 0.24 0.31 0.43 0.53 S(mg/L) 122 153 170 221 210 μ (h-1) 0.60 0.66 0.69 0.70 0.73

s=[6 13 33 40 64 102 122 153 170 221 210]; 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;

mu=[0.06 0.12 0.24 0.31 0.43 0.53 0.60 0.66 0.69 0.70 0.73];

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.0 8.6 8.4 7.5 7.0 6.8 6.5 6.0]'; Pb=[8.3 7.0 6.2 4.2 3.9 3.5 2.6 2.2]'; Pc=[2.7 4.4 5.4 8.3 9.1 9.7 10.9 11.8]'; k0=ones(8,1);alpha=0.05; r0=log(r); Pa0=log(Pa); Pb0=log(Pb); Pc0=log(Pc); p=[k0 Pa0 Pb0 Pc0]; k=exp(b(1)) m=r'*r

r=[1.97 1.05 0.73 0.25 0.18 0.13 0.07 0.04]';

[b,bint,r,rint,stats]=regress(r0,p,alpha)

p1=[Pa0 Pb0 Pc0]; stepwise(p1,r0)

第十六周 1. 对作业(7)的两题,分别作非线性回归,并比较参数值和残差。
function y=ecolinlin(beta0) s=[6 13 33 40 64 102 122 153 170 221 210]'; [beta,r,J]=nlinfit(s,mu,'szsl',beta0); mum=beta(1) ks=beta(2) r J function mu=szsl(beta,s) end mu=[0.06 0.12 0.24 0.31 0.43 0.53 0.60 0.66 0.69 0.70 0.73]';

mu=beta(1).*s./(beta(2)+s);

function y=reacnlin(beta0)

Pa=[9.0 8.6 8.4 7.5 7.0 6.8 6.5 6.0]'; Pb=[8.3 7.0 6.2 4.2 3.9 3.5 2.6 2.2]'; Pc=[2.7 4.4 5.4 8.3 9.1 9.7 10.9 11.8]'; p=[Pa Pb Pc]; k=beta(4)

R=[1.97 1.05 0.73 0.25 0.18 0.13 0.07 0.04]'; [beta,r,J]=nlinfit(p,R,'fydl',beta0); n1=beta(1)

n2=beta(2) n3=beta(3) r J function r=fydl(beta,p) end

r=beta(4).*p(:,1).^beta(1).*p(:,2).^beta(2).*p(:,3).^beta(3);

2.

作二次正交回归。数据如右,比较不同模型计算结果。

x1=[1 1 1 1 -1 -1 -1 -1 -1.68 1.68 0 0 0 0 0 0 0 0 0 0]'; x2=[1 1 -1 -1 1 1 -1 -1 0 0 -1.68 1.68 0 0 0 0 0 0 0 0]'; x3=[1 -1 1 -1 1 -1 1 -1 0 0 0 0 -1.68 1.68 0 0 0 0 0 0]'; 702.4 680.1 868.5 788.3 856.5 853.4 772.6 848.4]'; x=[x1 x2 x3];alpha=0.05; rstool(x,y,'linear',alpha) y=[730.2 780.5 266.7 224.5 783.1 837.5 622.6 538.3 536.2 221.2 214.2 926.2


matlab数学建模实例.pdf

matlab数学建模实例 - 第四周 3. 求f (x) ? x3 -11.1x

数学建模 第3讲 MATLAB的具体实例_图文.ppt

数学建模 第3讲 MATLAB的具体实例_数学_自然科学_专业资料。介绍matlab软件的具体操作实例 ...

数学建模案例MATLAB实用程序百例.doc

数学建模案例MATLAB实用程序百例_计算机软件及应用_IT/计算机_专业资料。

matlab数学建模实例.doc

matlab数学建模实例 - 第四周 3. 求f (x) = x3 -11.1

数学建模matlab例题参考及练习.pdf

数学建模matlab例题参考及练习 - 数学实验与数学建模 实验报告 学 院:

数学建模案例MATLAB实用程序百例_图文.pdf

数学建模案例MATLAB实用程序百例 - 实例 1:三角函数曲线(1) func

数学建模案例MATLAB实用程序百例.doc

数学建模案例MATLAB实用程序百例_数学_自然科学_专业资料。MATLAB

数学建模与MATLAB_图文.ppt

数学建模与MATLAB - Mathematical Modeling and MATLAB 数学建模与MATLAB 主讲人:孙越 数学建模与MATLAB 第二讲:数组与矩阵 2018/9/...

MATLAB经典数学建模教程_图文.pdf

MATLAB经典数学建模教程 - 第 1 节Matlab 基本知识 一、 Matlab 的主要功能 Matlab 是一种功能非常强大的工程语言,诞生于 20 世纪 70 年代,1984 年正式推...

基于matlab的数学建模.pdf

基于matlab数学建模 - MATLAB数学建模中的应用 (张威 103

数学建模案例MATLAB实用程序百例.pdf

数学建模案例MATLAB实用程序百例 - MATLAB实用程序百例 实例1:三角

数学建模matlab例题参考及练习.doc

数学建模matlab例题参考及练习 - 数学实验与数学建模 实验报告 学 院:

matlab在数学建模中的应用.pdf

matlab数学建模中的应用 - Matlab数学建模中的应用 数学建模是通过对实际问题的抽象和简化,引入一些数学符号、 变量和参数,用数学语言和方法建立变量参数间的...

数学建模Matlab算法大全1-30章.pdf

数学建模Matlab算法大全1-30章 - 第一章 §1 线性规划 线性规划 在

数学建模_MATLAB作图.ppt

数学建模_MATLAB作图 - 数学建模matlab软件 MATLAB作图 后勤工程学院数学教研室 仰恩大学数学系 信息与计算科学教研室 二维图形 三维图形 图形处理 实例 特殊二...

基于matlab的数学建模.doc

基于matlab数学建模 - 从实例出发,论述Matlab数学建模中的应用,以提高对Matlab软件的认识,提高解决实际问题的能力

MATLAB及在数学建模中的应用_图文.ppt

MATLAB及在数学建模中的应用 - 详细介绍了MATLAB数学建模中所有要用的的计算方法。... ? ? MatLab简介及基本运算 常用计算方法 应用实例 一、 MatLab简介及基本运...

MATLAB数学建模_图文.ppt

MATLAB数学建模 - 基于MATLAB的 高等数学实验 主讲: 张朝元 数学

数学建模_MATLAB作图..ppt

数学建模_MATLAB作图. - 数学建模matlab软件 MATLAB作图 后勤工程学院数学教研室 仰恩大学数学系 信息与计算科学教研室 二维图形 三维图形 图形处理 实例 特殊...

Matlab在数学建模竞赛中的应用_图文.pdf

Matlab数学建模竞赛中的应用_理学_高等教育_教育专区。matlab软件在数学建模中...着重对 Maa 数学工具软件在建模中的应用进行探讨, tbl 并给 出了应用 实例。...