matlab数学建模实例Word下载.docx
《matlab数学建模实例Word下载.docx》由会员分享,可在线阅读,更多相关《matlab数学建模实例Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
/10;
x2=<
20-2*x1^2-x1^3>
x3=x2-<
x2-x1>
^2/<
x2-2*x1+x0>
;
x3-x0>
x0=x3;
x2=<
x3=x2-<
x3
牛顿法:
functiony=newton<
x1=x0-fc<
/df<
x1=x0-fc<
functiony=fc<
x>
y=x^3+2*x^2+10*x-20;
functiony=df<
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迭代法:
functions=jacobi<
a,d,x0>
D=diag<
diag<
U=-triu<
a,1>
L=-tril<
a,-1>
C=inv<
D>
B=C*<
L+U>
G=C*d;
s=B*x0+G;
n=1;
whilenorm<
s-x0>
=1.0e-8
x0=s;
s=B*x0+G;
n=n+1;
n
Seidel迭代法:
functions=seidel<
D-L>
B=C*U;
=1.0e-5
松弛法:
functions=loose<
a,d,x0,w>
D-w*L>
1-w>
*D+w*U>
G=w*C*d;
2.练习MATLAB的常用矩阵语句,就龙格现象函数〔p88〕练习插值语句interp,spline,并比较.
3.测得血液中某药物浓度随时间的变化值为:
t<
h>
0.25
0.5
1.0
1.5
2.0
3.0
4.0
6.0
8.0
10.0
C<
mg/L>
19.30
18.15
15.36
14.10
12.89
9.32
7.55
5.24
3.86
2.88
求t=0.45,1.75,5.0,6.0时的浓度C.
分别用n=4,5,9的拉格朗日插值计算;
并用样条函数插值计算,并比较结果.
拉格朗日插值:
functions=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<
fori=1:
m
D=abs<
x-x0<
i>
I=1;
whileI<
=n+1
fora=1:
length<
ifD<
==min<
c<
I>
=a;
D<
=max<
+1;
break
I=I+1;
b=sort<
c>
z=x0<
t=0.0;
fork=1:
b>
u=1.0;
forj=1:
ifj~=k
u=u*<
z-x<
b<
j>
/<
x<
k>
-x<
t=t+u*y<
s<
=t;
样条函数差值:
Interp1<
x,y,x0,’spline’>
Spline<
x,y,x0>
第八周
1.给定某药物浓度随时间的变化值<
作业3>
1〕分别采用样条函数和三点公式〔设h=0.1>
求结点处的导数值,并比较结果.2〕求该时间段的平均浓度〔定步长S法〕
样条函数:
pp=csape<
x,y,'
not-a-knot'
df=fnder<
pp>
df1=ppval<
df,x>
三点公式:
functiondf=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>
x0=t<
y0=c<
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>
switchi
case1
df<
=<
-3*y0+4*y1-y2>
2*h>
casen
y4-4*y3+3*y0>
otherwise
y1-y3>
平均浓度:
functionaveragec=simpson<
m=<
t<
1>
+t<
10>
/2;
y=spline<
t,c,m>
averagec=<
c<
+4*y+c<
/6;
2.练习MATLAB常用的trapz,quad,quadl等语句.计算:
x=0:
8;
y=1./<
sqrt<
2.*pi>
.*exp<
-<
x-4>
.^2./2>
z=trapz<
x,y>
functiony=jifen<
q1=quad<
'
jifen'
0,8,1.0e-8>
q2=quadl<
3.采用变步长经典R-K法,ode23,ode45计算例9-5,并作比较.
变步长经典R-K法:
〔可能有问题〕
functionz=jdrk<
m>
x0=[252]'
a=0;
b=15;
z=zeros<
n,m>
k1=zeros<
n,1>
k2=zeros<
k3=zeros<
k4=zeros<
t=a;
x=x0;
x2=zeros<
x3=x2;
x4=x2;
h=choose<
m1=15/h+1;
m1
k1=prey<
t,x>
x2<
=x<
+1/2*h*k1<
k2=prey<
t+h/2,x2>
x3<
+1/2*h*k2<
k3=prey<
t+h/2,x3>
x4<
+h*k3<
k4=prey<
t+h,x4>
x<
+h/6*<
k1<
+2*k2<
+2*k3<
+k4<
z<
i,k>
t=t+h;
h1=length<
z>
t2=[a:
b-a>
h1-1>
:
b];
plot<
t2,z>
gtext<
x1<
x2<
functionh=choose<
h=15/<
n-1>
t0=0;
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<
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>
ifabs<
1.0e-5
whileabs<
h=h*2;
k11=prey<
k21=prey<
k31=prey<
k41=prey<
x1=x0+h/6*<
k12=prey<
k22=prey<
k32=prey<
k42=prey<
x2=x0+h/12*<
h=h/2;
else
t0+h,x0+h*k31