数值分析作业(C语言编程实现).doc
文本预览下载声明
#include stdio.h
#include math.h
double f(double x)
{
double ans;
ans=exp(x);
return ans;
}
void main()
{
double a=1,b=3,error=0.0001,t[20][20],h,c;
int i,j,k,m,n;
h=b-a;
t[0][0]=h*(f(a)+f(b))/2;
k=1;
while(1)
{
t[0][k]=0;
m=1;
for(j=0;jk-1;j++)
m=m*2;
for(i=1;i=m;i++)
t[0][k]=t[0][k]+h*f(a+(i-0.5)*h);
t[0][k]=(t[0][k]+t[0][k-1])/2;
for(j=1;j=k;j++)
{ c=1;
for(n=0;nj;n++)
c=c*4;
t[j][k-j]=(c*t[j-1][k-j+1]-t[j-1][k-j])/(c-1);
}
if(fabs(t[k][0]-t[k-1][0])error)
{ printf(\n积分结果 I ≈ %lf\n,t[k][0]);
break;
}
else
{ h=h/2;
k++;
}
}
}
#include stdio.h
#include math.h
double f(double t)
{
double ans;
ans=pow(cos(t),1.0/3);
return ans;
}
void main()
{
double x=0,eslong=0.000001,x0;
int N=20,i;
printf(\n近似初值 x0 = %lf\n,x);
for(i=0;iN;i++)
{
x0=x;
x=f(x);
printf( x%d = %lf\n,i+1,x);
if(fabs(x-x0)eslong)
break;
}
if(fabs(x-x0)eslong)
printf(得到近似结果为 x ≈ %lf\n\n,x,i);
else
printf(迭代失败\n);
}
#include stdio.h
#include math.h
double a=0,b=1,x,y=0,h=0.1,k1,k2,k3,k4;
int i,N;
double f(double t,double s)
{
double ans;
ans=1+t*t;
return ans;
}
void main()
{
N=(b-a)/h;
x=a;
printf(\n 初值为 (x0,y0) = ( %.8f , %.8f )\n,x,y);
for(i=0;iN;i++)
{
k1=f(x,y);
k2=f(x+h/2,y+h*k1/2);
k3=f(x+h/2,y+h*k2/2);
k4=f(x+h,y+h*k3);
y=y+h*(k1+2*(k2+k3)+k4)/6;
x=x+h;
printf( 第%d次输出结果为 (x%d,y%d) = ( %.8f , %.8f )\n,i+1,i+1,i+1,x,y);
}
}
#include stdio.h
void main()
{
double datax[4]={1.2,2.9,4.6,5.8},datay[10]={14.84,33.71,58.36,79.24},l[3],x=1.5,y;
int i,j;
y=0;
for(i=0;i=3;i++)
{
l[i]=1;
for(j=0;ji;j++)
l[i]=(x-datax[j])/(datax[i]-datax[j])*l[i];
for(j=i+1;j=3;j++)
l[i]=(x-datax[j])/(datax[i]-datax[j])*l[i];
y=y+datay[i]*l[i];
}
printf(\n f(x)在 x = %f 处的近似值为: y = %f\n,x,y);
}
#include stdio.h
void main()
{
double datay[9]={11.7,14.87,21.44,31.39,44.73,61.46,81.57,105.11,131.91};
int m=2,i,j,k;
double p,data[9][4]
显示全部