lagrange插值法.cpp

来自「Lagrange插值法C语言版 在VC6.0下编译通过」· C++ 代码 · 共 44 行

CPP
44
字号
#include <stdio.h>
#include <stdlib.h>

void main(  )
{
	int  n,i,j;
	float * x, * y, xWant, LI, PN = 0;

	printf("请输入结点个数\nN=");	//输入结点个数
	scanf("%d", &n);

	x = (float *)malloc(n * sizeof(float));		//为X申请空间
	y = (float *)malloc(n * sizeof(float));		//为Y申请空间

	printf("请输入已知X的值\n");	//输入已知X
	for(i = 0; i < n; i++)
	{
		printf("X[%d]=",i);
		scanf("%f", (x+i));
	}
	
	printf("请输入已知Y的值\n");	//输入已知Y
	for (i = 0; i < n; i++)
	{
		printf("Y[%d]=",i);
		scanf("%f", (y+i));
	}
 
	printf("请输入插值点的值\nx=");		//输入要求的值
	scanf("%f", &xWant);

	for (i = 0; i < n; i++)			//外循环  pn(x)
	{
		LI=1;
		for (j = 0; j < n; j++)		//内循环 li(x)
			if (j != i)
				LI *= ((xWant - x[j]) / ( x[i] - x[j]));
 
		PN += LI * y[i];
	}

	printf("计算结果\nP%d(%f)=%f\n\n",(n-1),xWant,PN);
}

⌨️ 快捷键说明

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