lagrange插值法算法程序(C语言)

用C语言实现lagrange插值法,
程序代码如下:
#include<stdio.h>
void main()
{
    float x[11],y[11],xx,w1,w2,l;
    int i,j,n,k;
    printf("lagrange插值:\n请输入要运算的值:x=");
    scanf("%f",&xx);
    printf("请输入插值的次数(n<11):n=");
    scanf("%d",&n);
    printf("请输入%d组值:\n",n+1);
    for(i=0;i<n+1;i++)
    {
        printf("x%d=",i);
        scanf("%f",&x[i]);
        printf("y%d=",i);
        scanf("%f",&y[i]);
    }    
    w1=1;l=0;
    for(i=0;i<n+1;i++)
        w1=w1*(xx-x[i]);
    for(k=0;k<n+1;k++)
    {
        w2=1;
        for(j=0;j<n+1;j++)
        if(j!=k) w2=w2*(x[k]-x[j]);
        w2=w2*(xx-x[k]);
        l=l+y[k]*w1/w2;
    }
    printf("求得的结果为:L(%.4f)=%f\n",xx,l);
}



[本日志由 somarange 于 2008-04-04 07:18 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: C语言 数值分析
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.