yj1.cpp

来自「这是一个Lagrange法算法」· C++ 代码 · 共 39 行

CPP
39
字号
#include<iostream.h>
void main()
{
	int n;
	float u,js,x[20],y[20];
	cout<<"********************************************************"<<endl;
	cout<<"*  这是分段线性Lagrange插值多项式求线性函数值的近似值  *"<<endl;
	cout<<"********************************************************"<<endl<<endl;
	cout<<"请输入插值节点个数n:";
	cin>>n;
	cout<<"请输入已知插值节点信息:"<<endl;
	for(int i=1;i<=n;i++)
	{ 
		cout<<"第"<<i<<"个插值节点       ";
			cout<<"x["<<i<<"]=";
			cin>>x[i];
		cout<<"第"<<i<<"个插值节点函数值 ";
			cout<<"y["<<i<<"]=";
			cin>>y[i];
	}
	{
		cout<<"请输入插值点u:";
		cin>>u;
		if(u<=x[1])
			js=y[1]*(u-x[2])/(x[1]-x[2])+y[2]*(u-x[1])/(x[2]-x[1]);
		else if(u>=x[n])
			js=y[n-1]*(u-x[n])/(x[n-1]-x[n])+y[n]*(u-x[n-1])/(x[n]-x[n-1]);
		else
			for(i=1;i<n;i++)
				if((u-x[i])*(u-x[i+1])<0)
					js=y[i]*(u-x[i+1])/(x[i]-x[i+1])+y[i+1]*(u-x[i])/(x[i+1]-x[i]);
				cout<<"近似值为:"<<js<<endl;	
	}
}




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?