How can I find the coefficients of the 2D interpolated function?

4 vues (au cours des 30 derniers jours)
SPerera
SPerera le 1 Août 2024
Commenté : SPerera le 1 Août 2024
My function is . I used following code to interpolation. How can I find the coefficients of the interpolated function ?
Eta = load('Eta.txt');
t = 0:5:(8.25*60); % time
x = [0,3750,7500,8000]; % distance
[X,T] = meshgrid(x,t);
% interpolation
[xq,tq] = meshgrid(0:2:8000,0:(8.25*60)) ;
Eta_intp = interp2(X,T,eta,xq,tq,'spline');

Réponse acceptée

Animesh
Animesh le 1 Août 2024
Modifié(e) : Animesh le 1 Août 2024
To find the coefficients of the 2-D interpolated function, we can use polynomial fitting on the interpolated data. You can use the "polyfit" function to do so in MATLAB.
Here is something you can try:
  1. Flatten the matrices, since "polyfit" works only with vectors.
% Flatten the matrices
xq_flat = xq(:);
tq_flat = tq(:);
E_intp_flat = E_intp(:);
2. Perform polynomial fitting:
% Perform polynomial fitting
% Here, we assume a polynomial of degree 2 in both x and t
degree = 2;
p = polyfitn([xq_flat, tq_flat], E_intp_flat, degree);
disp(p.Coefficients);
  1 commentaire
SPerera
SPerera le 1 Août 2024
@Animesh Thank you so much. I got it. After this I checked the difference between original data and polynomial data using following code. There is a difference between these two. Without adjusting the Polynomial Degree, how can I reduce this difference?
% Define a function for evaluating the polynomial
eta_poly = @(xq,tq) polyvaln(p,[xq,tq]);
% Evaluate the polynomial at the original grid points
eta_poly_values = arrayfun(@(x_val, t_val) eta_poly(x_val, t_val), X, T);
% Compare the polynomial values with the original eta data
% Calculate the difference
difference = eta_poly_values - eta;

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Polynomials dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by