matlab数学建模实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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));

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.测得血液中某药物浓度随时间的变化值为:

求t=, , , 时的浓度C.

分别用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)

第八周

相关文档
最新文档