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 + -
显示快捷键?