首页 > 代码库 > 拉格朗日函数c++
拉格朗日函数c++
#include <iostream>
using namespace std;
//拉格朗日插值求解方程
double * xs; //all input x
double * ys; //all input y
int n; //size
//1.1275 1.1503 1.1735 1.1972
//0.1191 0.13954 0.15932 0.17903
//1.130
void init()
{
cout << "please input n " << endl;
cin >> n;
xs = new double[n];
ys = new double[n];
//input x
cout << "please input the x‘s value !" << endl;
for(int i=0; i<n; i++)
{
cin >> xs[i];
}
//input y
cout << "please input the y‘s value !" << endl;
for(int i=0; i<n; i++)
{
cin >> ys[i];
}
}
double everyItem(int num, double x)
{
double y = ys[num];
double up = 1;
double down = 1;
for(int i=0; i<n; i++)
{
if(i != num)
{
up *= (x - xs[i]);
down *= (xs[num] - xs[i]);
}
}
return y*up/down;
}
double lagrange(double x)
{
double total = 0;
for(int i=0; i<n; i++)
{
total = total + everyItem(i , x);
}
return total;
}
int main()
{
init();
double input;
cout << "please input you x !" <<endl;
cin >> input;
double result = lagrange(input);
cout << "the result is " << result << endl;
return 0;
}
来自为知笔记(Wiz)
附件列表
拉格朗日函数c++
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。