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

3 Ansichten (letzte 30 Tage)
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');

Akzeptierte Antwort

Animesh
Animesh am 1 Aug. 2024
Bearbeitet: Animesh am 1 Aug. 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 Kommentar
SPerera
SPerera am 1 Aug. 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;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Polynomials finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by