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

 
  

مصطلحات
العربية: طريقة التقسيم الثنائي
الإنجليزية: Simpson's Method
الفرنسية: Méthode de Simpson

المبدأ

الحساب العددي لـ I = 

نجزئ المجال الاندماج [a, b] إلى n مجال ذي طول يساوي h = ، محدودة بنقط التجزيء

xi = a + nh , i = 0,... N (هو خطوة التكامل).

في كل مجال [xi, xi+1], i = 0,... n-2، نستبدل f بحدوديتها الإستكمالية من الدرجة 2 المار من النقط

(xi,  f(xi))  و  (xi+2,  f(xi+2)) و (xi+1,  f(xi+1))

وبذلك نستنتج القيمة المقربة لـ I.


الصيغة القاعدة (n=2)


الصيغة التركيب

(n  زوجي)

الارتياب :


مثال

نعتبر التكامل المعرف:

القيمة المضبوط لهذا التكامل هو Log(2) 

حساب الرقمي لقيمة I .

الحسبتين الأوليتين

f(a) = f(0) = 1/(0+1) = 1 
f(b) = f(1) = 1/(1+1) = 1/2
f(1/2) = 1/(1/2+1) = 2/3
n=2(صيغة القاعدة):
S(1/2) = ((1/2)/3)(f(0) + 4f(1/2) + f(1)) = ((1/2)/3)(1 + 4(2/3) +(1/2))= 25/36
f(1/4) = 1/(1/4+1) = 4/5
f(3/4) = 1/(3/4+1) = 4/7
n=4 :
S(1/4) = ((1/4)/3)(f(0) + f(1) + 2f(1/2) + 4(f(1/4)+f(3/4))) = ((1/4)/3)(1 + (1/2) + 2(2/3) + 4((4/5)+(4/7))) = 1747/2540

البرمجة

#include <math.h>
#include <conio.h>

double qu_f(double x) { return(1/(x+1)); }
double qu_simpson(double a,double b,long n);
main() { int i; long n; double a,b,s,vr_val,er; clrscr(); a=0;b=1; vr_val=log(2); printf("Méthode de Simpson\n"); printf("Vraie valeur = %.17e\n",vr_val); printf(" n Valeur calculée Erreur Taux\n"); n=1; for(i=1;i<=11;i++) { n *= 2; s=qu_simpson(a,b,n); er=fabs(s-vr_val); printf("%4ld %.17e %.3e %.3e\n",n,s,er,er*pow(n,4)); } }

(ملاحظة :سيكون مكلفا حساب القيمة بالأولى استكمال لطريقة غومبغج)


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

في كل كرة، البرنامج يظهر قيمة n وقيمة شبه المنحرف والارتياب ونسبة التقارب (نسبة الخطأ وللقيمة h4).

القيمة الحقيقية= 6.9314718055994529e-01
  n      
  النسبة      الارتياب          القيمة المحسوبة

   2     6.9444444444444453e-01      1.30e-03      2.08e-02
   4     6.9325396825396834e-01      1.07e-04      2.73e-02
   8     6.9315453065453070e-01      7.35e-06      3.01e-02
  16     6.9314765281941904e-01      4.72e-07      3.09e-02
  32     6.9314721028982318e-01      2.97e-08      3.12e-02
  64     6.9314718242145490e-01      1.86e-09      3.12e-02
 128     6.9314718067634251e-01      1.16e-10      3.12e-02
 256     6.9314718056722124e-01      7.28e-12      3.12e-02
 512     6.9314718056039981e-01      4.55e-13      3.12e-02
1024     6.9314718055997371e-01      2.84e-14      3.12e-02
2048     6.9314718055994728e-01      2.00e-15      3.52e-02
4096     6.9314718055994329e-01      2.00e-15      5.62e-01

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

معايير هذه الدالة هي كالتالي:

a و b: حدي المجال [ab]
n: العدد (الزوجي) للمجالات الصغرى (ذي الطول h)
 
تستدعي الدالة الرئيسة دالة أخرى هي كالتالي:

 double qu_f(double x)

 التي يجب أن تعرف في البرنامج الأساسي وهي تمثل الدالة الرياضية f.

ترجع الدالة القيمة المحسوبة باستعمال طريقة سيبسون.

double qu_simpson(double a,double b,long n)
{
long i;
double h,s,x;
h=(b-a)/n;
s=qu_f(a)+qu_f(b);
x=a;

for(i=1;i<=n-1;i++)
{
x += h;
if (fmod(i,2)==1) s += 4*qu_f(x);
else s += 2*qu_f(x);
}
return(s*h/3);
}
مقالات أخرى من نفس الفئة « طريقة شبه المنحرف طريقة رومبرغ »

أضف تعليقا


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

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