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

পাইথনে ডেটার সাথে লেজান্ড্র সিরিজের লিস্ট স্কোয়ার ফিট পান


ডেটার সাথে লেজান্ড্র সিরিজের লিস্ট স্কোয়ার ফিট পেতে, পাইথন নাম্পাই-তে legendre.legfit() মেথডটি ব্যবহার করুন। এই মেথডটি নিম্ন থেকে উচ্চ ক্রম অনুক্রমে লেজান্ড্র কোইফিশিয়েন্ট রিটার্ন করে। যদি y 2-ডি হয়, তবে y-এর কলাম k-তে থাকা ডেটার কোইফিশিয়েন্ট আউটপুটের কলাম k-তে থাকবে।

প্যারামিটার x হলো M স্যাম্পল (ডেটা) পয়েন্টের x-কোঅর্ডিনেট (x[i], y[i])। প্যারামিটার y হলো স্যাম্পল পয়েন্টের y-কোঅর্ডিনেট। একই x-কোঅর্ডিনেট শেয়ার করা একাধিক স্যাম্পল সেট y-তে 2-ডি অ্যারে পাস করে একটি কলামে এক ডেটা সেট রেখে একসাথে ফিট করা যায়।

প্যারামিটার deg হলো ফিটিং পলিনোমিয়ালের ডিগ্রি। যদি deg একক ইন্টিজার হয়, তবে deg'তম টার্ম পর্যন্ত সব টার্ম ফিটে অন্তর্ভুক্ত হবে। প্যারামিটার rcond হলো ফিটের রিলেটিভ কন্ডিশন নম্বর। সিংগুলার ভ্যালু rcond-এর চেয়ে ছোট হলে (সর্বোচ্চ সিংগুলার ভ্যালুর আপেক্ষিক) അവহেলা করা হবে। ডিফল্ট মান len(x)*eps, যেখানে eps হলো প্ল্যাটফর্মের ফ্লোট টাইপের রিলেটিভ প্রিসিশন, অধিকাংশ ক্ষেত্রে প্রায় 2e-16। প্যারামিটার full হলো রিটার্ন ভ্যালুর ধরন নির্ধারণকারী স্যুইচ। False (ডিফল্ট) হলে শুধু কোইফিশিয়েন্ট রিটার্ন হয়; True হলে সিংগুলার ভ্যালু ডিকম্পোজিশন থেকে ডায়াগনস্টিক তথ্যও রিটার্ন হয়।

প্যারামিটার w হলো ওয়েট। যদি None না হয়, তবে w[i] x[i]-এ আনস্কোয়ার্ড রেসিডুয়াল y[i] - y_hat[i]-এ প্রয়োগ হবে। আদর্শভাবে ওয়েটগুলো এমনভাবে বেছে নেওয়া উচিত যাতে w[i]*y[i]-র এরর সবার জন্য একই ভ্যারিয়্যান্স রাখে। ইনভার্স-ভ্যারিয়্যান্স ওয়েটিং ব্যবহার করলে w[i] = 1/sigma(y[i])। ডিফল্ট মান None।

ধাপসমূহ

প্রথমে প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন —

import numpy as np from numpy.polynomial import legendre as L

x-কোঅর্ডিনেট —

x = np.linspace(-1,1,51) 

x-কোঅর্ডিনেট প্রদর্শন করুন —

print("X Co-ordinate...\n",x)

y-কোঅর্ডিনেট —

y = x**3 - x + np.random.randn(len(x)) print("\nY Co-ordinate...\n",y)

ডেটার সাথে লেজান্ড্র সিরিজের লিস্ট স্কোয়ার ফিট পেতে legendre.legfit() মেথডটি ব্যবহার করুন। মেথডটি নিম্ন থেকে উচ্চ ক্রম অনুক্রমে লেজান্ড্র কোইফিশিয়েন্ট রিটার্ন করে। যদি y 2-ডি হয়, তবে y-এর কলাম k-তে থাকা ডেটার কোইফিশিয়েন্ট আউটপুটের কলাম k-তে থাকবে —

c, stats = L.legfit(x,y,3,full=True) print("\nResult...\n",c) print("\nResult...\n",stats)

উদাহরণ

import numpy as np from numpy.polynomial import legendre as L # The x-coordinate x = np.linspace(-1,1,51) # Display the x-coordinate print("X Co-ordinate...\n",x) # The y-coordinate y = x**3 - x + np.random.randn(len(x)) print("\nY Co-ordinate...\n",y) # To get the Least squares fit of Legendre series to data, use the legendre.legfit() method in Python numpy c, stats = L.legfit(x,y,3,full=True) print("\nResult...\n",c) print("\nResult...\n",stats)

আউটপুট

X Co-ordinate... [-1. -0.96 -0.92 -0.88 -0.84 -0.8 -0.76 -0.72 -0.68 -0.64 -0.6 -0.56 -0.52 -0.48 -0.44 -0.4 -0.36 -0.32 -0.28 -0.24 -0.2 -0.16 -0.12 -0.08 -0.04 0. 0.04 0.08 0.12 0.16 0.2 0.24 0.28 0.32 0.36 0.4 0.44 0.48 0.52 0.56 0.6 0.64 0.68 0.72 0.76 0.8 0.84 0.88 0.92 0.96 1. ] Y Co-ordinate... [-5.28795520e-02 -7.61252904e-03 7.35194215e-02 -1.33072588e-01 -1.21785636e+00 7.75679385e-02 6.55168668e-01 1.42872448e+00 8.42326214e-01 2.49667989e+00 9.58942508e-01 -2.67332869e-01 -7.85575928e-01 1.93333045e+00 7.32492468e-01 5.23576961e-01 -1.91529521e+00 -1.41434385e+00 4.44787373e-01 3.81831261e-01 3.74128321e-01 1.20562789e+00 1.44870029e+00 1.01091575e-03 8.94334713e-01 1.22342199e+00 9.52055370e-01 -7.29520012e-01 -2.42648820e-01 -9.78434555e-02 1.27468237e-01 9.39489448e-01 1.08795136e+00 2.31230197e+00 1.93107556e-02 -6.13335407e-01 1.93170835e-01 -8.77958854e-01 -3.59868085e-01 4.31331759e-01 7.24929856e-01 -2.22736540e-01 -1.29623093e+00 4.13226024e-01 7.82155644e-01 -1.56618537e-01 1.25043737e+00 6.32386988e-01 -2.75716271e-01 8.80669895e-02 -3.20225560e-01] Result... [ 0.29249467 -0.10521942 -0.24847572 0.2010877 ] Result... [array([39.35467561]), 4, array([1.0425003 , 1.02126704, 0.97827074, 0.95561139]), 1.1324274851176597e-14]
  1. পাইথনে ডেটার সাথে পলিনোমিয়ালের লিস্ট-স্কোয়ার ফিট পানো

  2. পাইথনে 3D অ্যারের ইনভার্স নির্ণয়

  3. পাইথনে টেনসরফ্লো দিয়ে ডেটা মডেলে ফিট (fit) করা

  4. প্রদত্ত সিরিজের সকল উপাদান শাফল (shuffle) করার পাইথন প্রোগ্রাম লিখুন