কম্পিউটার টিউটোরিয়াল

সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)


সিক্যান্ট পদ্ধতিও অ-লিনিয়ার সমীকরণ সমাধান করতে ব্যবহৃত হয়। এই পদ্ধতি নিউটন-রাফসন পদ্ধতির সাথে মিলিত, কিন্তু এখানে আমাদের ফাংশন f(x)-এর ডিফারেনশিয়েশন বের করতে হয় না। শুধু f(x) ব্যবহার করে, নিউটনের ভাগ পার্থক্য সূত্র ব্যবহার করে f'(x)-কে সাংখ্যিকভাবে বের করা যায়। নিউটন-রাফসন সূত্র থেকে,

আমরা জানি যে,

সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)

এখন, ভাগ পার্থক্য সূত্র ব্যবহার করে, আমরা পাই,

সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)

নিউটন-রাফসন সূত্রের f'(x)-কে নতুন f'(x)-দিয়ে প্রতিস্থাপন করে, আমরা অ-লিনিয়ার সমীকরণ সমাধানের সিক্যান্ট সূত্র পেতে পারি।

সিক্যান্ট পদ্ধতি (Secant method to solve non-linear equation)

নোট: এই পদ্ধতির জন্য, অ-লিনিয়ার সমীকরণের মূল বের করা শুরু করার জন্য যেকোনো দুটি প্রাথমিক অনুমান প্রয়োজন।

ইনপুট এবং আউটপুট

ইনপুট: ফাংশন f(x) = (x*x) - (4*x) - 10 আউটপুট: মূলটি হল: -1.74166

অ্যালগরিদম

secant(x1, x2)

ইনপুট: মূলের জন্য দুটি প্রাথমিক অনুমান।

আউটপুট: অ-লিনিয়ার সমীকরণ f(x)-এর সন্নিকট মূল।

শুরু 
  f1 := f(x1) 
  f2 := f(x2) 
  x3 := ((f2*x1) – (f1*x2)) / (f2 – f1) 
  যতক্ষণ x3 এবং x2-এর সাপেক্ষ ত্রুটি > নির্ভুলতা, করুন 
    x1 := x2 
    f1 := f2 
    x2 := x3 
    f2 := f(x2) 
    x3 := ((f2*x1) – (f1*x2)) / (f2 – f1) 
  শেষ 
  root := x3 
  root ফেরত দিন 
শেষ

উদাহরণ

#include<iostream> #include<cmath> using namespace std; double absolute(double value) {       //মানের পরিমাণ বের করতে   if(value < 0)     return (-value);   return value; } double f(double x) {       //দেওয়া ফাংশন x^2-4x-10   return ((x*x)-(4*x)-10); } double secant(double x1, double x2) {   double x3, root;   double f1, f2;   f1 = f(x1);   f2 = f(x2);   x3 = (f2*x1-f1*x2)/(f2-f1);   while(absolute((x3-x2)/x3) > 0.00001) {     //x3-এর নির্ভুলতা পরীক্ষা     x1 = x2;       //x মান শিফট করুন     f1 = f2;     x2 = x3;     f2 = f(x2);       //নতুন x2 বের করুন     x3 = (f2*x1-f1*x2)/(f2-f1);       //x3 গণনা করুন   }   root = x3;   return root;       //সমীকরণের মূল } main() {   double a, b, res;   a = 0.5;   b = 0.75;   res = secant(a, b);   cout << "The root is: " << res; }

আউটপুট

The root is: -1.74166

  1. পাইথনে লিনিয়ার ম্যাট্রিক্স সমীকরণ সমাধান

  2. পাইথনে কোড্রেটিক ইকুয়েশন সমাধান করা

  3. রুবির Array#zip আয়ত্ত করুন: দক্ষ অ্যারে পেয়ারিং এবং তুলনা

  4. Warzone PC-এ লঞ্চ হচ্ছে না? সমাধান – ধাপে ধাপে গাইড