Vandermonde அணி மூலம் பல்லுறுப்புக்கோவை இடைக்கணிப்பு (Lagrange இடைக்கணிப்பு) – Matlab / GNU Octave நிரல்

Published by Arun Isaac on

In other languages: English

Tags: கணிதம், matlab, octave

Lagrange பல்லுறுப்புக்கோவை இடைக்கணிப்பு செய்வதற்குச் எளிமையான, ஆனால் தாழ்நிலையான, முறை…

சில ஆண்டுகளுக்கு முன், பல்லுறுப்புக்கோவை இடைக்கணிப்பை Matlab அல்லது GNU Octave யில் செய்வதைப் பற்றி இந்த பதிவை எழுதினேன். இதை Vandermonde அணி மூலம் ஒற்றை வரியிலேயே செய்யலாம். அதைக் கீழ் காணலாம்.

function coeff = lagrange(xpts, fpts)

  %% Lagrange interpolation fitting polynomial p(x) to function f(x)
  %%
  %% p(x) = a_n x^n + a_{n-1} x^{n-1} + a_{n-2} x^{n-2} + ... + a_1 x + a_0
  %%
  %% xpts -- column vector of sampling points
  %% fpts -- column vector with value of the function at the sampling points
  %% coeff -- column vector of polynomial coefficients in the form [a_n, a_{n-1}, a_{n-2}, ... , a_1, a_0]'

  coeff = vander(xpts) \ fpts;

கூறெடுத்தப் புள்ளிகளைப் பல்லுறுப்புக்கோவைகளுக்குப் பொருத்துவதே பல்லுறுப்புக்கோவை இடைக்கணிப்பாகும். பொருத்தப்பட்ட பல்லுறுப்புக்கோவையின் கெழுக்கள் நேரியல் சமன்பாட்டுத் தொகுப்பொன்றின் தீர்வு திசையனே.

இந்நிரல் சுருக்கமானது. ஆனால் Vandermonde நேரியல் சமன்பாட்டுத் தொகுப்பைத் தீர்த்தல் தாழ்நிலையான கணக்கு. கூறெடுப்புப் புள்ளிகள் அதிகமாக மிதவைப்புள்ளி பிழைகள் வேகமாகப் பெருகும் என்பதை மனதில் கொள்ளவும்.