拉格朗日c语言实验报告,拉格朗日插值法C语言的实现(实验报告)(9页)-原创力文档...
韓山師范學院 C語言程序設計
實驗名稱: 實驗一:拉格朗日插值法C語言的實現 日期: 2011-9-19
任課教師: 賴國明 專業: 數學與應用數學 學號: 2009111437 姓名: 鄭永鋒
【實驗目的】
1、進一步熟悉拉格朗日插值法。
2、掌握編程語言字符處理程序的設計和調試技術。
【實驗內容】
(題目)作出插值點 (-2.00,0.00),(2.00,5.00),(5.00,6.00)的二次Lagrange 插值多項式
L (x),并計算L (-1.2),L (1.2)。
2 2 2
? 解題思路:
1
()輸入已知點的個數;
2 X
()分別輸入已知點的 坐標;
3 Y
()分別輸入已知點的 坐標;
4 lagrange
()通過調用函數 函數,來求某點所對應的函數值。
拉格朗日插值多項式如下:
n
L (x ) ?y l (x ) y j 0,1,……n
n j k k j j
k 0
(x?x )……(x-x )(x-x )……(x-x)
l (x) 0 k-1 k+1 n k 0,1,……,n
其中 k (x ?x )……(x-x )(x-x )……(x-x)
k 0 k k-1 k k+1 k n
程序流程圖:
開始
↓
輸入已知點個數n
↓
輸入已知點的X坐標以及輸入已知點的Y坐標
↓
調用函數lagrange 函數
↓
輸出結果
1 9
第 頁 共 頁
韓山師范學院 C語言程序設計
? 源程序:
#include
#include
float lagrange(float *x,float *y,floatxx,intn)
{
int i,j;
float *a,yy 0.0;
for(i 0;i< n-1;i++)
{
a[i] y[i];
for(j 0;j< n-1;j++)
if(j! i) a[i]* (xx-x[j])/(x[i]-x[j]);
yy+ a[i];
}
free(a);
returnyy;
}
intmain()
{
int i;
intn;
floatx[20],y[20],xx,yy;
printf("Inputn:");
scanf("%d",&n);
if(n> 20)
{
printf("Error!Thevalueofn must in (0,20).");getch();return 1;
}
if(n< 0)
總結
以上是生活随笔為你收集整理的拉格朗日c语言实验报告,拉格朗日插值法C语言的实现(实验报告)(9页)-原创力文档...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux开发板加快开机速度,reada
- 下一篇: C语言实训指导数组,c语言实训指导书