?? 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 + -