计算方法上机实验报告.docx
- 文档编号:30044823
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:12
- 大小:19.64KB
计算方法上机实验报告.docx
《计算方法上机实验报告.docx》由会员分享,可在线阅读,更多相关《计算方法上机实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
计算方法上机实验报告
计算方法上机实验报告
《计算方法》上机试验报告
班
级:
XXXXXX
小组成员:
:
XXXXXXX
XXXXXXX
XXXXXXXXXXXXXX
任课教师:
XXX二〇一八年五月二十五日前言
通过进行多次得上机试验,我们结合课本上得内容以及老师对我们得指导,能够较为娴熟地把握Newton迭代法、Jcobi迭代法、Guss-Seidel迭代法、Newton插值法、Lagrnge插值法与Guss求积公式等六种算法得原理与使用方法,并参考课本例题进行了MTLB程序得编写。
以下为本次上机试验报告,根据试验内容共分为六部分.试验一:
一、试验名称及题目:
:
Newtnon迭代法
例2、7(P38〕:
应用Newton迭代法求在附近得数值解,并使其满足、二、解题思路:
设就是得根,选取作为初始近似值,过点做曲线得切线,得方程为,求出与轴交点得横坐标,称为得一次近似值,过点做曲线得切线,求该切线与轴得横坐标称为得二次近似值,重复以上过程,得得近似值序列,把称为得次近似值,这种求解方法就就是牛顿迭代法。
三、bMtlb程序代码:
ffunction
newton_iterration(x0,tol〕
symsz%%定义自变量
fformt
llonng
%定义精度
f==z*z*zz--zz-1;
f1=diff(f〕;%求导
y=subs(f,z,x0);
y1=subs(f1,,z,x0);%%向函数中代值
x1=x0-y/y1;k=1;
wwhile
abs((x11—x0)〉==tol
xx0=x1;
y=subs〔f,z,x0);
y1=subs((f1,z,,x0);
x1=x0--y/y1;k=k+1;
end
x=double〔xx1))
K
四、运行结果:
试验二:
:
一、试验名称及题目:
Jcobbi迭代法
例3、7(P74〕:
试利用Jcobi迭代公式求解方程组
要求数值解为方程组得精确解、二、解题思路:
首先将方程组中得系数矩阵分解成三部分,即:
,为对角阵,为下三角矩阵,为上三角矩阵。
之后确定迭代格式,,〔,即迭代次数),称为迭代矩阵。
最终选取初始迭代向量,开始逐次迭代。
最终验证精度。
〔迭代阵:
。
)雅克比迭代法得优点明显,计算公式简洁,每迭代一次只需计算一次矩阵与向量得乘法,且计算过程中原始矩阵始终不变,比较简单并行计算.然而这种迭代方式收敛速度较慢,而且占据得存储空间较大。
三、Mbtlb程序代码:
:
function
jcobi〔,b,x0,eps,x1))
D
==
dig(dig〔A〕
);%%求A得对角矩阵
L=—ttrill〔,--1);%%求求得下三角矩阵
UU
=--trriu((A,,1);%求得上三角矩阵
B=D\\〔L+U));
f=
D\b;
x=B*xx0+f;
n=1;%%迭代次数
while
noorm((x—x1)>=epss
x=B*x+f;
n=
n+1;
end
formtlongg
nn
x
jingdu=norm(x—x1)
四、运行结果:
试验三:
:
一、试验名称及题目:
:
Guss—Seidel
迭代法
例3、8〔P75〕:
试利用Guss-Seidel迭代公式求解方程组,并使其数值解为方程组得精确解、二、解题思路:
:
Guss-Seidel迭代法与Jcobi迭代法思路相近,首先将方程组中得系数矩阵分解成三部分,即:
,为对角阵,为下三角矩阵,为上三角矩阵.之后确定迭代格式,,(,即迭代次数),称为迭代矩阵。
最终选取初始迭代向量,开始逐次迭代。
最终验证精度。
(迭代阵:
.)Guss—Seidel迭代法与Jacobi迭代法相比速度更快,但不全如此。
有例子说明:
Guss-Seidel迭代法收敛时,Jacobi迭代法可能不收敛;而Jcobi迭代法收敛时,Guss—Seidel迭代法也可能不收敛。
三、Mtllab程序代码:
function
ggauss_seeidel(A,b,x00,eps,x1〕
D=dig(diag((A〕));%%求求得对角矩阵
LL
==
-tril((A,—1〕;;%求得下三角矩阵
UU
=—triu〔,1);%求得上三角矩阵
B=(D-L))\\U;
ff
=〔DD—L))\\b;
x
==
BB*x0+f;;
n=1;%%迭代次数
while
norm(x1--x)>=eps
x=B*x+f;
n=n+1;
end
formtlong
nn
xx
jjingdu=norm(x1—x)
四、运行结果:
:
试验四:
:
一、试验名称及题目:
:
Lgrnge
插值法
例4、1(P88):
给定函数及插值节点、试构造Lagrnge插值多项式,给出其误差估量,并由此计算及其误差、二、解题思路:
:
一般来说,假如我们有个点,各互不相同。
那么应用拉格朗日插值公式所得到得拉格朗日插值多项式为:
其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:
。
三、Mtlabb程序代码:
:
ffunction
yy=lgrnge〔x0,x)
n=length〔x0);%%向量长度
s=0;
for
k=1:
nk%k从从11到到nn得循环
p=11、0;
for
j=1:
n
if
jj~=k%“~=〞不等于得意思
p=p*〔xx—x0(j))/〔x0(k〕--x0(j));
end
end
y0=x0((k)*(1+cos〔xx0(k))〕;;
s=p*y0+s;;
end
formtlong
s
wucha=bs(x*((1+cos(x〕))--s)
四、运行结果:
、五、Lgrngee插值图像绘制
%Lgrnge插值图像算法
x=linspce(0,1002,200);
s=linspce〔0,1000,200);
x0=[0;pi/8;pi/4;3*pi/8;pi/2];
n=length〔x0);
s=0;
fork=1:
n
p=1、0;
forj=1:
n
ifj~=k
p=p、*(x-x0〔j〕)/(x0(k)—x0〔j〕);
end
end
y0=x0(k)*(1+cos(x0(k〕)〕;
s=p*y0+s;
end
plot(x,s,’r");
gridon;
title("Lgrange²åֵͼÏñ’)
xlbel(’X’),ylbel("Y");
xisnorml;
试验五:
:
一、试验名称及题目:
:
Newton插值法
例4、3〔P96):
已知,试取插值节点,构造4次Newton插值多项式,由此计算得靠近值,并指出其肯定误差、二、解题思路:
:
将拉格朗日插值公式中得改写成:
))...((...))(()()(10102010nnnxxxxxxxxxxxN,其中,为待定定系数.又,,。
将带入可得:
))...()(](,...,,[...)](,[)()(110100100nnxxxxxxxxxfxxxxfxfxf.
三、Mtlabb程序代码:
:
function
newton_interpolation(x0,x))
fformmatt
longg
nn=llength((x0);
syms
z
f=sqrtt〔1+cosh(z〕^2);
(1)=subs(f,z,x0
(1)〕;;
for
k=1:
n—1
y0=subs(f,zz,xx0(k〕));
y1=subs〔f,z,x0(k+1))〕;;
d(k,1〕
=(y1--yy0)/(x0(k+11〕-xx0〔kk〕〕;;%一阶差商
end
fforr
j=2:
n--11
for
kk=11:
nn—jj
d(k,j〕
=(d〔k+1,jj—1))—d(k,j-1))/(x0((k+j〕-xx0((k〕
);%%二阶差商及以上
end
endd
ddouble(d))
for
j=2:
n
(j)=d(1,j—1);
end
bb〔11〕
=1;cc〔1)=a
(1);
fforr
j=2:
nn
bb〔j〕
=(x--x0〔jj--1)〕、*b〔jj—1〕;;
c(j)=(j)、*b〔j);
eendd
nnp=double(sum〔cc〕〕
wwuch=double(bs(np--subs〔f,z,x))〕))
四、运行结果:
五、Newton插值图像绘制
试验六:
:
一、试验名称及题目:
Guss
求积公式
例5、7〔P140):
试构造Guss型求积公式,
并由此计算积分、二、解题思路:
:
设高斯-勒让德求积公式就是:
依次代入,解得.利用换元公式变换原式得积分上下限,在套用高斯—勒让德求积公式求得积分.三、bMtlb程序代码:
:
fuunctioon
guss〔,b〕
symstt
f=sqrt〔tt〕/(1+t)^2;
PP=[--ssqrt〔3/5)0sqrt(3/5)];
=[5/98/95/99];
s=0;
for
ii=1:
3;
x=P(i);
y=subs〔f,t,〔b--a)*x/2+〔a+bb〕
/2〕;;
s=s+(i)*y;
end
formatlong
S=double(〔—b)/2*s〕
四、运行结果:
:
结束语
在本学期得《计算方法》课程学习中,我们感受到了奇异得数学计算方法在解决实际问题中带来得便利与高效,借助计算机解决科学计算问题也就是我们当代大学生应当把握得必要技能。
在本课程得上机试验过程中,我们亲自体验了课本中所学到得算法在计算机上得使用,使用计算机语言,如MTLAB与C语言等进行编程,加深了我们对各类算法及其理论得理解,并进一步激发了我们对《计算方法》这门课程进行持续学习得学习兴趣。
情节一点也不突兀。
实在佩服的才华。
龙格-库塔
-(y*y));//f(x,y)µÄ±í´ïʽ}
intmin()
{
flotx0,x1,y0,y1,k1,k2,k3,k4,,b,c,n,h;inti;
scnf("%f%f%f%f",x0=;
y0=c;
h=(b-)/n;
for(i=1;i\n{
k1=h*function(x0,y0);
k2=h*function(x0+h/2,y0+k1/2);k3=h*function(x0+h/2,y0+k2/2);k4=h*function(x0+h,y0+k3);x1=x0+h;
y1=y0+(k1+2*k2+2*k3+k4)/6;
printf("x%d=%f,y%d=%f\\\\n",i,x1,i,y1);x0=x1;
y0=y1;
}
return0;
}
拉格朗日
0
j;
floty=0.0,l;
while(k\n{
l=1.0;
//printf("%lf\\\\n",y);
for(j=0;j\n{
if(j!
=k)
{
l=l*(x-[j])/([k]-[j]);//printf("%lf\\\\n",l);
}
}
//printf("%lf\\\\n",f[k]);
//printf("%lf\\\\n",l);
y=y+l*f[k];
k++;
}
printf("x=%f,y=%f\\\\n",x,y);
returny;
}
flotfx1(flotx)
{
return(1/(1+x*x));
}
flotfx2(flotx)
{
returnexp(x);
}
flotfx3(flotx)
{
returnsqrt(x);
}
voidmth1(flotc,flotn)
{
inti=0;
floth;
h=2*c/n;
while(i\n{
[i]=i*h-5;
i++;
}
}
voidmth2()
{
inti=0;
while(i\n{
[i]=cos((2*i+1)*pi/2/(n+1));
i++;
}
}
intmin()
{
n=20;
inti;
mth1(5,n);
for(i=0;i\n{
f[i]=fx1([i])
}
lgrnge(,f,0.75,n);
return0;
}
龙贝格
00],r[1000];
doublef(doublex)
{
return(x*x*exp(x));
}
intmin()
{
doubleh,,b,e;
inti,N,m;
scnf("%lf,%lf,%d,%lf",
h=b-;
m=0;
t=0.5*h*(f()+f(b));
printf("%lf",t);
r[0]=t[0];
while
(1)
{
printf("\\\\n");
for(i=0;i\nt[i]=r[i];
m++;
h=h/2;
r[0]=t[0]/2;
for(i=1;i\nr[0]+=h*f(+(i-0.5)*h)/2;
printf("%lf",r[0]);
r=(4*r[0]-t[0])/3;
printf("%lf",r);
if(m==1)
continue;
r=(16*r-t)/15;
printf("%lf",r);
if(m==2)
continue;
r=(64*r-t)/63;
printf("%lf",r);
if(m==3)
continue;
if((fbs(r-t)\nbrek;
}
printf("\\\\nthecurrenttimeis:
%d\\\\n",m);
return0;
}
牛顿
;
beginner=error1=error2=0;
scnf("%lf%lf%lf%d",intcurrent_times=0;
while(current_times\n{
if(fbs(function(beginner))\n{
printf("%lf\\\\n",beginner);
return0;
}
if(fbs(d_function(beginner))\n{
printf("filure\\\\n");
return0;
}
beginner=beginner-function(beginner)/d_function(beginner);if(fbs(function(beginner)/d_function(beginner))\nprintf("%lf\\\\n",beginner);
return0;
}
current_times++;
}
printf("filure\\\\n");
return0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 上机 实验 报告