1 / 37
文档名称:

数值分析实验报告(同名8562).docx

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

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

分享

预览

数值分析实验报告(同名8562).docx

上传人:Alone-丁丁 2022/2/6 文件大小:2.64 MB

下载得到文件列表

数值分析实验报告(同名8562).docx

文档介绍

文档介绍:数值分析实验报告(同名8562)
void main()
{
int i;
float s1=0,s2=0,d1,d2;
for(i=1;i<=10000;i++)
s1=s1+[5]=;
printf("x: \n");
printf("y: \n");
printf("做五次插值,并求x=,x=,x=.\n\n");
for(int i=0;i<M;i++)
f[0][i]=y[i];
float N[3];
N[0]=newton(,5,f,x,y);
N[1]=newton(,5,f,x,y);
N[2]=newton(,5,f,x,y);
printf("x= %f\n",N[0]);
printf("x= %f\n",N[1]);
printf("x= %f\n",N[2]);
}
float w(float X,int n,float x[])
{
float w=;
for (int i=0;i<n;i++)
w=w*(X-x[i]);
return w;
}
float quotient(int k,int i,float f[][M],float x[],float y[])
{
if(k==0)
f[0][i]=y[i];
else
f[k][i]=(quotient(k-1,i,f,x,y)-quotient(k-1,i-1,f,x,y))/(x[i]-x[i-k]);
return f[k][i];
}
float newton(float X,int n,float f[][M],float x[],float y[])
{
float N;
N=f[0][0];
for (int i=1;i<=n;i++)
N=N+w(X,i,x)*quotient(i,i,f,x,y);
return N;
}
运行结果
拉格朗日:
牛顿:
对算法的理解与感悟
实验三
实验要求
分别用复化梯形公式和复化辛卜生公式计算f(x)=sin(x)/x的积分,并与准确值比较判断精度。
实验目的
通过实际计算来真实体会复合梯形公式和复合辛普森公式两种数值求积方法的精确度。
算法描述
1、复合梯形公式
步骤一:确定函数的区间为【a,b】,并确定其节点的个数,算出每个小区间的步长h;
步骤二:根据确定的h,代入复合梯形公式,算出其对应的结果。
2、复合辛普森公式
步骤一:确定函数的区间为【a,b】,并确定其节点的个数,算出每个步长h;
步骤二:根据确定的h,代入复化辛普生公式,算出对应的积分结果。
源程序
#include<>
#include<>
void main()
{
int m,n,k,i;
float Tn,Sn,d1,d2,a=0,b=0,c=0;
float x[1000],y[1000],z[1000],w[1000];
{
printf("将复化梯形区间划分:");
scanf("%d",&n);
for(i=1;i<n;i++)
{
x[i]=float(*i);
y[i]=(float)(sin(x[i])/x[i]);
a=a+y[i];
}
Tn=(float)((+sin()/+2*a)/);
printf("复化梯形输出:%f\n",Tn);
printf("将复化辛卜生区间划分为:");
scanf("%d",&m);
}
for (k=1;k<m;k++)
{
z[k]=float(*k);
z[k+1]=float(*(k+1));
z[k+1/2]=float(z[k]+z[k+1])/2;
w[k]=(float)(sin(z[k])/z[k]);
w[k+1/2]=(float)(sin(z[k+1/2])/((z[k]+z[k+1])/2));
b=b+w[k];