📄 lagrange插值法.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -