-
. z.
数值分析上机实验报告
-
. z.
"数值分析"上机实验报告
*7-*4+.1;;
double s[10][10];
double a[10],b[10],c[10],d[10],e[10],*[10],h[9],u[9],r[9];
double f[10]={0,,,,,
,,,,};
printf("请依次输入*i:\n");
for(i=0;i<=9;i++)
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++)
-
. z.
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];}}
*[9]=p10/q10;
printf("M[10]=%lf\n",*[9]);
for(i=9;i>=1;i--)
{*[i-1]=(b[i-1]-s[i-1][i]**[i])/a[i-1];
printf("M[%d]=%lf\n",i,*[i-1]);}
printf("可得s(*)在区间[4,5]上的表达式;\n");
printf("将*=:\n");
*0=5-;
*1=-4;
s4=*[3]*pow(*0,3)/6+*[4]*pow(*1,3)/6+(f[3]-*[3]/6)*(5-)+(f[4]-*[4]/6)*(-4);
g4=-*[3]*pow(*0,2)/2+*[4]*pow(*1,2)/2-(f[3]-*[3]/6)+(f[4]-*[4]/6);
printf("计算结果:f()的函数值是:%lf\nf()的导数值是:%lf\n",s4,g4);}
:
-
. z.
1. 三次样条插值效果比Lagrange插值好,没有Runge现象,光滑性较好。
2. 此题的对任意划分的三弯矩插值法可以解决非等距节点的一般性问题。
3. 编程过程中由于定义的数组比拟多,需要仔细弄清楚各数组所代表的参数,要注意各下标代表的含义,特别是在用追赶法计算的过程中。
-
. z.
数值分析上机实验报告 来自淘豆网m.daumloan.com转载请标明出处.