1 / 24
文档名称:

《数值分析》上机实验报告.doc

格式:doc   大小:2,079KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《数值分析》上机实验报告.doc

上传人:布罗奇迹 2022/6/21 文件大小:2.03 MB

下载得到文件列表

《数值分析》上机实验报告.doc

相关文档

文档介绍

文档介绍:《数值分析》上机实验报告
数值分析上机实验报告

1
1
C语言程序原代码:
#include<>
#inclui++)
scanf("%lf",&e[i]); //求h矩阵
for(n=0;n<=8;n++)
h[n]=e[n+1]-e[n];
d[0]=6*((f[1]-f[0])/h[0]-g0)/h[0];
d[9]=6*(g9-(f[9]-f[8])/h[8])/h[8];
for(j=0;j<=7;j++)
d[j+1]=6*((f[j+2]-f[j+1])/h[j+1]-(f[j+1]-f[j])/h[j])/(h[j]+h[j+1]);
for(m=1;m<=8;m++)
u[m]=h[m-1]/(h[m-1]+h[m]);
for(k=1;k<=8;k++)
r[k]=h[k]/(h[k-1]+h[k]);
for(i=0;i<=9;i++) //求u矩阵
for(p=0;p<=9;p++)
{s[i][p]=0;
if(i==p)s[i][p]=2;}
s[0][1]=1;
s[9][8]=1;
for(i=1;i<=8;i++)
{s[i][i-1]=u[i];
s[i][i+1]=r[i];}
printf("三对角矩阵为:\n");
for(i=0;i<=9;i++)
for(p=0;p<=9;p++) //求r矩阵
{ printf("%",s[i][p]);
if(p==9)
{printf("\n");}
}
printf("根据追赶法解三对角矩阵得:\n");
a[0]=s[0][0];
b[0]=d[0];
for(i=1;i<9;i++)
{c[i]=s[i][i-1]/a[i-1]; //求d矩阵
a[i]=s[i][i]-s[i-1][i]*c[i];
b[i]=d[i]-c[i]*b[i-1];
if(i==8)
{p10=b[i];
q10=a[i];}}
x[9]=p10/q10;
printf("M[10]=%lf\n",x[9]);
for(i=9;i>=1;i--)
{x[i-1]=(b[i-1]-s[i-1][i]*x[i])/a[i-1];
printf("M[%d]=%lf\n",i,x[i-1]);}
5
printf("可得s(x)在区间[4,5]上的表达式;\n");
printf("将x=:\n");
x0=5-;
x1=-4;
s4=x[3]*pow(x0,3)/6+x[4]*pow(x1,3)/6+(f[3]-x[3]/6)*(5-)+(f[4]-x[4]/6)*(-4);
g4=-x[3]*pow(x0,2)/2+x[4]*pow(x1,2)/2-(f[3]-x[3]/6)+(f[4]-x[4]/6);
printf("计算结果:f()的函数值是:%lf\nf()的导数值是:%lf\n",s4,g4);}
运行结果:
问题讨论
1. 三次样条插值效果比Lagrange插值好,没有Runge现象,光滑性较好。
2. 本题的对任意划分的三弯矩插值法可以解决非等距节点的一般性问题。
3. 编程过程中由于定义的数组比较多,需要仔细弄清楚各数组所代表的参数,要注意各下标代表的含义,特别是在用追赶法计算的过程中。
6
.
理论依据:
Romberg算法的计算步骤如下:
(1)先求出按梯形公式所得的积分值
(2)把区间2等分,求出两个小梯形面积之和,记为,即
这样由外推法可得,。
(3)把区间再等分(即等分),得复化梯形公式,由与外推可得,,如此,若已算出等分的复化梯形公式,则由Richardson外推法,构造新序列
, m=1,2,…,l, k=1,2,…,l-m+1,
最后求得。
(4)或<就停止计算,否则回到(3),计算,一般可用如下算法:
7
其具体流程如下,并全部存入第一列