# Knowledge Base

 Navigation: Scripting Language > Functions polyfit

Calculates a polynomial fit based on linear regression. The data can be complex.

 Supported Product: FDTD, MODE, DEVICE, INTERCONNECT

 Syntax Description p = polyfit(x, y, N); Returns the coefficients for a polynomial p(x) of degree N that is the best fit for the data in y. The length of the coefficients is N+1.

Example

In this example random noise is added to a smooth function. A polynomial fit of the noisy data allows to recover the original function approximately.

clear;

x = linspace(0,10,100);

noise_amp = 200;

y_original = 3.2 + 2i*x + 4.5*x^2 - 0.04*x^3;

y_noise = y_original + noise_amp*(randmatrix(length(x))-0.5);

fit = polyfit(x,y_noise,3);

y_fit = fit(1) + fit(2)*x + fit(3)*x^2 + fit(4)*x^3;

plot(x,abs(y_original),abs(y_noise),abs(y_fit));

legend("y_original","y_noise","y_fit");

?fit;

result:

-20.3301+1.67422e-013i # fit(1)

19.7752+2i                  # fit(2)

-0.477739+4.58522e-014i # fit(3)

0.304786-4.35069e-015i # fit(4)