أنت هنا:برمجها»التحليل الرقمي»الإستكمال»طريقة نوفيل إيتكن
طريقة نوفيل إيتكن طريقة نوفيل إيتكن
قيم الموضوع
(1 تصويت)

 
 

مصطلحات

العربية: طريقة نوفيل إيتكن

الإنجليزية: Neville - Aitken's algorithm

الفرنسية: Algorithme de Neville-Aitken


المبدأ

Pn(x)لتكن    حدودية معرفة كاتالي:

Pn(xi) = yi ,    i = 0,... n

نحسب حدودية الاستكمال Pn(x) باستعمال صيغة الترجع.


الخوارزم

تهيئ

  Pi,i(x) = yi,   i = 0,... n

تكرار

حدودية الاستكمال هي Pn(x) = P0,n(x)


مثال

نعتبر حدودية الاستكمال P(x) بحيث: P(0) = 0, P(1)=3, P(3)=5, P(9/2)=4, P(5)=3

احسب قيمةP(x)  في 20 نقطة متباعدة بنفس المسافة من المجال [0, 5]

حسابP(2)

x0=0, x1=1, x2=3, x3=9/2, x4=5
y0=0, y1=3, y2=5, y3=4, y4=3
P0,0(2) = y0 = 0
P1,1(2) = y1 = 3
P2,2(2) = y2 = 5
P3,3(2) = y3 = 4
P4,4(2) = y4 = 3
P0,1(2) = ((2-0)*3-(2-1)*0)/(1-0) = 6
P1,2(2) = ((2-1)*5-(2-3)*3)/(3-1) = 4
P2,3(2) = ((2-3)*4-(2-9/2)*5)/(9/2-3) = 17/3
P3,4(2) = ((2-9/2)*3-(2-5)*4)/(5-9/2) = 9
P0,2(2) = ((2-0)*4-(2-3)*6)/(3-0) = 14/3
P1,3(2) = ((2-1)*17/3-(2-9/2)*4)/(9/2-1) = 94/21
P2,4(2) = ((2-3)*9-(2-5)*17/3)/(5-3) = 4
P0,3(2) = ((2-0)*94/21-(2-9/2)*14/3)/(9/2-0) = 866/189
P1,4(2) = ((2-1)*4-(2-5)*94/21)/(5-1) = 61/14
P0,4(2) = ((2-0)*61/14-(2-5)*866/189)/(5-0) = 283/63
P(2) = P0,4(2) = 283/63

البرمجة

#include <math.h>
#include <conio.h>
#define NMAX 5

double it_pol_neville(int n,double x[NMAX],double f[NMAX],double alpha);
main() { double alpha,ord; int j; double x[NMAX],f[NMAX]; clrscr(); printf("Méthode de Neville-Aitken\n"); x[0]=0;x[1]=1;x[2]=3;x[3]=4.5;x[4]=5; f[0]=0;f[1]=3;f[2]=5;f[3]=4;f[4]=3; for(j=0;j<=20;j++) { alpha=0.25*j; ord=it_pol_neville(4,x,f,alpha); printf("x =%6.2f y =%24.17e \n",alpha,ord); } }

نتيجة البرنامج

في كل عملية حسابية، البرنامج يظهر قيمة المتغير وقيمة الملائمة لحدودية الاستكمال.

x =  0.00     y =  0.0000000000000000e+00   
x =  0.25     y =  9.3624751984126986e-01  
x =  0.50     y =  1.7380952380952381e+00  
x =  0.75     y =  2.4213169642857144e+00  
x =  1.00     y =  3.0000000000000000e+00  
x =  1.25     y =  3.4865451388888888e+00  
x =  1.50     y =  3.8916666666666666e+00  
x =  1.75     y =  4.2243923611111107e+00  
x =  2.00     y =  4.4920634920634921e+00  
x =  2.25     y =  4.7003348214285712e+00  
x =  2.50     y =  4.8531746031746028e+00  
x =  2.75     y =  4.9528645833333336e+00  
x =  3.00     y =  5.0000000000000000e+00  
x =  3.25     y =  4.9934895833333330e+00  
x =  3.50     y =  4.9305555555555554e+00  
x =  3.75     y =  4.8067336309523814e+00  
x =  4.00     y =  4.6158730158730155e+00  
x =  4.25     y =  4.3501364087301591e+00  
x =  4.50     y =  4.0000000000000000e+00  
x =  4.75     y =  3.5542534722222223e+00  
x =  5.00     y =  3.0000000000000000e+00  

الدالة الرئيسية it_pol_neville

  • معايير الدالة هي كالتالي:
    n :عدد نقاط الإستكمال
    d : جدول يحتوي على معاملات حدوديات القاعدة
    x : جدول يحتوي على أفاصيل الإستكمال
    alpha : قيمة المتغير

ترجع هذه الدالة، بخصوص القيمة المعطاة للمتغير، قيمة حدودية الإستكمال المحسوبة باستعمال طريقة نوفيل إيتكن.

الثابتة الصحيحة NMAX تساوي العدد القصوي لنقاط الإستكمال.

double it_pol_neville(int n,double x[NMAX],double f[NMAX],double alpha) 
{
int i,j;
double p;
double d[NMAX][NMAX];

for(j=0;j<=n;j++)
d[j][0]=f[j];

for(j=1;j<=n;j++)
for(i=0;i<=n-j;i++)
d[i][j]=((alpha-x[i])*d[i+1][j-1]-(alpha-x[i+j])*d[i][j-1])/(x[i+j]-x[i]);

p=d[0][n];
return(p);
}
مقالات أخرى من نفس الفئة « طريقة لاغرونج طريقة نيوتن »

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث