maab数学建模实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四周
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));
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)>=
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)>=
x0=s;
s=B*x0+G;
n=n+1;
end
n
2.练习MATLAB的常用矩阵语句,就龙格现象函数(p88)练习插值语句interp, spline,并比较。
3.测得血液中某药物浓度随时间的变化值为:
分别用n=4,5,9的拉格朗日插值计算;并用样条函数插值计算,并比较结果。
拉格朗日插值:
function s=lagr(n)
x=[ ];
y=[ ];
x0=[ ];
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=;
for k=1:length(b)
u=;
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=求结点处的导数值,并比较结果。2)求该时间段的平均浓度(定步长S法)
样条函数:
x=[ ];
y=[ ];
pp=csape(x,y,'not-a-knot');
df=fnder(pp);
df1=ppval(df,x)
三点公式: