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

1 回表示 (過去 30 日間)
SPerera
SPerera 2024 年 8 月 1 日
コメント済み: SPerera 2024 年 8 月 1 日
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');

採用された回答

Animesh
Animesh 2024 年 8 月 1 日
編集済み: Animesh 2024 年 8 月 1 日
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 件のコメント
SPerera
SPerera 2024 年 8 月 1 日
@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;

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by