牛顿插值多项式
#include<stdio.h>
#include<math.h>
main()
{
int i,j,k,n;
float x[10],y[10],a,b,p;
printf("input n\n");
scanf("%d",&n);
printf("input X\n");
for(i=0;i<=n;i++)
scanf("%f",&x[i]);
printf("input Y\n");
for(i=0;i<=n;i++)
scanf("%f",&y[i]);
printf("input x\n");
scanf("%f",&a);
b=0;
k=0;
do{
p=1;
j=0;
do
{
if(j!=k)
p=p*(a-x[j])/(x[k]-x[j]);
j++;
}while(j<n);
b=b+p*y[k];
k++;
}while(k<n);
printf("x=%f,y=%f",a,b);
}
牛顿迭代
#include<stdio.h>
#include<math.h>
#define N 100
float f(float x)
{
float y;
y=x-cos(x);
return y;
}
main()
{
float x0,x1,a;
int k;
scanf("%f,%f",&x0,&a);
for(k=0;k<N;k++)
{
x1=x0-(x0-cos(x0))/(1+sin(x0));
if(fabs(x1-x0)<a)
{
printf("%f,%d",x1,k);
break;
}
else x0=x1;
}
if(k>=N)
{
printf("error");
}
}
牛顿下山
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
y=pow(x,3)-x-1;
return y;
}
float g(float x)
{
float y;
y=