C++实现Lagrange插值

本文介绍了一个使用C++编写的Lagrange插值法程序,通过给定一组插值节点值,计算特定x值的函数y=x³的近似值。程序展示了如何构造和求解插值多项式。
摘要由CSDN通过智能技术生成

仿照课本P54  6.3 题目使用Lagrange插值法

#include<iostream>
using namespace std;
double arr[2][5],rslt;
int n;
double f(double x){return x*x*x;}
int main(){
    cout<<"Lagrange插值法:\n";
    cout<<"函数 y = x³\n输入插值节点的数量:";      cin>>n;

    cout<<"请输入节点值:";
    for(int i=0;i<n;i++)cin>>arr[0][i],arr[1][i] = f(arr[0][i]);
    double x;
    cout<<"请输入要计算的x:";      cin>>x;
    
    puts("");
    cout<<"节点"<<'\t';
    for(int i=0;i<n;i++)cout<<arr[0][i]<<'\t';
    puts("");
    cout<<"y"<<'\t';
    for(int i=0;i<n;i++)cout<<arr[1][i]<<'\t';
    puts("");
    double tmp=0;
    for(int i=0;i<n;i++){
        tmp =1 ;
        for(int j=0;j<n;j++){
            if(i == j)tmp *= arr[1][i];
            else tmp = tmp *(x-arr[0][j])/(arr[0][i]-arr[0][j]);

        }
        cout<<i+1<<"式计算结果"<<tmp<<'\n';
        rslt +=tmp;
    }
    cout<<"综上"<<n-1<<"次插值计算结果为结果为:"<<rslt;
    return 0;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值