MATLAB Polynomial

MATLAB performs, polynomials as row vectors, including coefficients ordered by descending powers. For example, the equation P(x) = x4 + 7x3 - 5x + 9 can be represented as -

p = [1 7 0 -5 9];

Polynomial Functions

polyfit

Given two vector x and y, the command a=polyfit (x, y, n) fits a polynomial of order n through the data points (xi,yi) and returns (n+1) coefficients of the power of x in the row vector a. The coefficients are arranged in the decreasing order of the power of x, i.e.,a=[a n a n-1…a 1 a 0 ].

polyval

Given a data vector x and the coefficients of a polynomial in a row vector a the command y=polyval(a, x) evaluates the polynomials at the data points xi and generates the values yi such that

yi=a(1) xn i+a(2) xi (n-1)+…+a(n)x+a(n+1).

Hence, the length of the vector a is n+1, and, consequently, the order of the evaluated polynomial is n. Thus if a is 5 elements long, the polynomial to be evaluated is automatically ascertained to be of the fourth-order.

Both polyfit and polyval use an optimal argument if you need error estimates.

Example: Straight-line (linear) fit

The following data is collected from an experiment aimed at measuring the spring constant of a given spring. Different masses m are hung from the spring, and the corresponding deflections δ of the spring from its unstretched configuration are measured.

From physics, we have that F=kδ and here F=mg. Thus, we can find k from the relationship k=mg/δ.

Here, we are going to find k by plotting the experimental data, fitting the best straight line (we know that the relationship between δ and F is linear) through the data, and then measuring the slope of the best-fit line.

m(g) 5.00         10.00         20.00         50.00         100.00
δ(mm) 15.5         33.07         53.39         140.24         301.03

Fitting a straight line through the data means we want to find the polynomial coefficients a1 and a0(a first-order polynomial) such that a1 xi+a0gives the "best" estimate of yi. In steps, we need to the following:

Step1: Find the coefficients ak' s:

a=polyfit(x, y, 1)

Step2: Evaluate y at finer (more closely spaced) xj' s using the fitted polynomial:

y_fitted=polyval(a, x_fine)

Step3: Plot and see. Plot the given input as points and fitted data as a line:

plot(x, y, 'o',x_fine, y_fitted);

Following script file shows all the steps contained in making a straight-line fit through the given data for the spring experiment and finding the spring constant.

And plots the following graph:

MATLAB Polynomial

Least squares curve fitting

The procedure of least square curve fit can simply be implemented in MATLAB, because the technique results in a set of linear equations that need to be solved.

Most of the curve fits are polynomial curve fits or exponential curve fits (including power laws, e.g., y=axb).

Two most commonly used functions are:

  • y=aebx
  • y=cxd

1.ln (y)=ln (a) +bx or y =a0+a1 x,where y =ln(y), a1=b,and a0=ln?(a).

2. ln(y)=ln(c) +d ln (x) or y = a0+a1 x, where y = ln (y), a1=d,and a0=ln?(c).

Now we can use polyfit in both methods with just first-order polynomials to determine the unknown constants.

The steps involved are the following:

Step1: Develop new input: Develop new input vectors y and x, as allocate, by taking the log of the original input. For example, to fit the curve of the type y=aebx, create

ybar=log(y) and leave x and to fit a curve of the type y=cxd, create ybar=log(y) and xbar=log(x).

Step2: Do a linear fit: Use polyfit to found the coefficients a0 and a1for a linear curve fit.

Step3: Plot the curve: From the curve fit coefficients, calculates the values of the original constants (e.g., a, b). Recomputed the values of y at the given x's according to the relationship obtained and plot the curve along with the original data.

The following are the table shows the time versus pressure variation readings from a vacuum pump. We will fit a curve, P(t)=P0 e-t/τ, through the data, and determine the unknown constants P0 and τ.

t 0             0.5         1.0         5.0         10.0         20.0
P 760         625         528         85         14         0.16

By taking the log of both sides of the relationships, we have

MATLAB Polynomial

where P=ln(P), a1=MATLAB Polynomial-and a0=ln?(P0 ). Thus, we can easily computed P0 and τ once we have a1 and a0.

Example: Create a script file

And plots the following graph:

MATLAB Polynomial




Contact US

Email:[email protected]

MATLAB Polynomial
10/30