Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . में बेसेल का प्रक्षेप

इंटरपोलेशन अज्ञात मान की एक प्रकार की अनुमान तकनीक है जो ज्ञात मूल्यों के बीच स्थित है। इंटरपोलेशन, ज्ञात डेटा बिंदुओं के असतत सेट की सीमा के बीच नए डेटा बिंदुओं के निर्माण की प्रक्रिया है।

प्रक्षेप का उपयोग करने के लिए एक आवेदन या कारण यह है कि यह गणना लागत को कम कर सकता है। जब कुछ मूल्यों की गणना करने के लिए सूत्र (फ़ंक्शन) गणना करने के लिए बहुत जटिल या महंगा है, तो हम इंटरपोलेशन का उपयोग करना पसंद करते हैं। कुछ डेटा बिंदुओं की गणना मूल फ़ंक्शन का उपयोग करके की जाती है, बाकी का अनुमान प्रक्षेप का उपयोग करके लगाया जा सकता है। ये पूरी तरह सटीक नहीं हो सकते हैं लेकिन काफी करीब हैं!

तो मूल रूप से यहाँ कम गणना लागत और सरलता प्रक्षेप त्रुटि से होने वाले नुकसान से अधिक है।

बेसेल इंटरपोलेशन फॉर्मूला

f(u) = {(f(0)+f(1))/2} + {u - ½}𝛥f(0) + {u(u-1)/2!}{(𝛥2 f(-1) + 𝛥2 f(0))/2} + {u(u-1)(u - ½)/3!}𝛥3f(-1) + {u(u+1)(u-1)(u-2)/4!}{(𝛥4f(-2) + 𝛥4f(-1))/2}+..

यहाँ,

f(0) मूल बिंदु है जो आमतौर पर मध्य बिंदु होता है।

u =x - f(0) / h, gh अंतर का अंतराल है

उदाहरण

बेसल के प्रक्षेप को दर्शाने वाला कार्यक्रम -

#include <iostream>
using namespace std;
float calU(float u, int n){
   if (n == 0)
      return 1;
   float result = u;
   for (int i = 1; i <= n / 2; i++)
      result = result*(u - i);
   for (int i = 1; i < n / 2; i++)
      result = result*(u + i);
   return result;
}
int factorial(int n){
   if(n == 1)
      return 1;
   return n * factorial(n-1);
}
int main(){
   int n = 6;
   float x[] = { 50, 51, 52, 53, 54, 55 };
   float y[n][n];
   y[0][0] = 8.000;
   y[1][0] = 7.746;
   y[2][0] = 7.674;
   y[3][0] = 7.571;
   y[4][0] = 7.469;
   y[5][0] = 7.231;
   for (int i = 1; i < n; i++)
      for (int j = 0; j < n - i; j++)
         y[j][i] = y[j + 1][i - 1] - y[j][i - 1];
   float value = 53.2;
   float sum = (y[2][0] + y[3][0]) / 2;
   int index;
   if (n % 2)
      index = n/2;
   else
      index = n/2 - 1;
   float u = (value - x[index]) / (x[1] - x[0]);
   for (int i = 1; i < n; i++) {
      if (i % 2)
         sum+= (((u-(0.5))*calU(u, i - 1)*y[index][i])/factorial(i));
      else
         sum+= ((calU(u, i)*(y[index][i]+y[-- index][i])/(factorial(i)*2)));
   }
   cout<<"Value at "<<value<<" found using Bessels's interpolation is "<<sum;
   return 0;
}

आउटपुट

Value at 53.2 found using Bessels's interpolation is 7.54985

  1. सी++ में इनकैप्सुलेशन

    Encapsulation डेटा और विधियों को एक साथ लाता है जो डेटा को एक घटक में हेरफेर करता है और उन्हें बाहरी हस्तक्षेप से बचाता है। संक्षेप में, एनकैप्सुलेशन में डेटा के साथ-साथ डेटा का उपयोग करने वाले कार्यों को बंडल करना शामिल है। डेटा इनकैप्सुलेशन डेटा छिपाने की बहुत महत्वपूर्ण अवधारणा की ओर ले जाता है।

  1. C++ . में पहचानकर्ता

    C++ पहचानकर्ता एक ऐसा नाम है जिसका उपयोग किसी चर, फ़ंक्शन, वर्ग, मॉड्यूल, या किसी अन्य उपयोगकर्ता-परिभाषित आइटम की पहचान करने के लिए किया जाता है। एक पहचानकर्ता अक्षर A से Z या a से z या अंडरस्कोर (_) से शुरू होता है और उसके बाद शून्य या अधिक अक्षर, अंडरस्कोर और अंक (0 से 9) होते हैं। C++ पहचानकर्त

  1. Linux पर C++ का सबसे अच्छा IDE क्या है?

    केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। Linux पर C++ के लिए एक भी सर्वश्रेष्ठ IDE नही