标题:拉格朗日插值的一个自编程序
只看楼主
hy1592808878
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2011-5-22
结帖率:0
已结贴  问题点数:20 回复次数:4 
拉格朗日插值的一个自编程序
特点:对插值节点数没有约束。
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
void main()
{
    //................//
    //lagrange插值举例//
    //................//

    double *xi,*yi,x,y;//xi,yi为插值节点,x为插值点;
    int n;//n为插值区间数量;
    int i,j,k;
    double P;

    y=0.0;
    printf("请输入插值区间数量(n=):\n");
    scanf("%d",&n);
    xi=(double*)malloc((n+1)*sizeof(double));
    yi=(double*)malloc((n+1)*sizeof(double));
    printf("请输入节点xi值:\n");
    for(i=0;i<=n;i++)
    {
        printf("xi[%d]:  ",i);
        scanf("%lf",(xi+i));
        printf("yi[%d]:  ",i);
        scanf("%lf",(yi+i));
        printf("\n");
    }
    printf("请输入插值点值:\n");
    printf("x=");
    scanf("%lf",&x);
    printf("\n");
    //下面实现插值功能
    for(k=0;k<=n;k++)
    {
        P=1.0;
        for(j=0;j<=n;j++)
        {
            if(k!=j) P*=(x-*(xi+j))/(*(xi+k)-*(xi+j));
        }
        y+=P*(*(yi+k));
    }
    printf("插值点x上的值为(y=):%lf",y);
    free(xi);
    free(yi);
    getche();
搜索更多相关主题的帖子: double void include 
2011-05-22 18:20
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:10 
高数忘差不多了  看不懂

                                         
===========深入<----------------->浅出============
2011-05-22 20:50
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:10 
顶哈
2011-05-22 21:48
guxinxiaohan
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2010-5-11
得分:0 
正好要用呢,果断顶,虽然我也看不懂
2011-12-15 12:59
清早茶凉
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2014-11-11
得分:0 
大神啊!!!!好东西
2015-04-17 10:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-340749-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062310 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved