Lagrange插值求解线性方程

来源:互联网 发布:排班表软件 编辑:程序博客网 时间:2024/04/29 12:06
//Lagrange插值函数#include <stdio.h>#include <math.h>#include <stdlib.h>#define N 10float LagrangeFun(float a[],float b[],int n,float c);void main(){float aa[N],bb[N],f,xx;int nn;printf("输入个数:n=");scanf("%d",&nn);printf("输入x的值:");for(int i=0;i<nn;i++)scanf("%f",&aa[i]);printf("输入y的值:");for(int j=0;j<nn;j++)scanf("%f",&bb[j]);printf("输入要求的xx值:");scanf("%f",&xx);f=LagrangeFun(aa,bb,nn,xx);printf("求得f(xx)=%f\n",f);}float LagrangeFun(float a[],float b[],int n,float x){int i,j,k;float t=1,y=0;for(k=0;k<n;k++){for(i=0;i<k;i++){t=t*((x-a[i])/(a[k]-a[i]));}for(j=k+1;j<n;j++){t=t*((x-a[j])/(a[k]-a[j]));}y=y+t*b[k];t=1;}return y;}

原创粉丝点击