How can I make all-in-one polynomial from multi-polynomial?

1k Views Asked by At

I'm not familiar with expert math. so I don't know where to start from.

I have get a some article like this. I am just following this article description. But this is not easy to me.

But I'm not sure how to make just one polynomial equation(or something like that) from above 4 polynomial equations. Is this can be possible way?

If yes, Would you please help me how to get a polynomial(or something like equation)? If not, would you let me know the reason of why?

UPDATE

I'd like to try as following 


clear all ;
clc

ab = (H' * H)\H' * y;
y2 = H*ab;

Finally I can get some numbers like this.



So, is this meaning?



As you can see the red curve line, something wrong.
What did I miss anythings?
1

There are 1 best solutions below

4
On BEST ANSWER

All the article says is "you can combine multiple data sets into one to get a single polynomial".

You can also go in the other direction: subdivide your data set into pieces and get as many separate ones as you wish. (This is called n-fold validation.)

You start with a collection of n points (x, y). (Keep it simple by having only one independent variable x and one dependent variable y.)

Your first step should be to plot the data, look at it, and think about what kind of relationship between the two would explain it well.

Your next step is to assume some form for the relationship between the two. People like polynomials because they're easy to understand and work with, but other, more complex relationships are possible.

One polynomial might be:

y = c0 + c1*x + c2*x^2 + c3*x^3

This is your general relationship between the dependent variable y and the independent variable x.

You have n points (x, y). Your function can't go through every point. In the example I gave there are only four coefficients. How do you calculate the coefficients for n >> 4?

That's where the matricies come in. You have n equations:

y(1) = c0 + c1*x(1) + c2*x(1)^2 + c3*x(1)^3
....
y(n) = c0 + c1*x(n) + c2*x(n)^2 + c3*x(n)^3

You can write these as a matrix:

y = H * c

where the prime denotes "transpose".

Premultiply both sides by transpose(X):

transpose(X)* y = transpose(H)* H * c

Do a standard matrix inversion or LU decomposition to solve for the unknown vector of coefficients c. These particular coefficients minimize the sum of squares of differences between the function evaluated at each point x and your actual value y.

Update:

I don't know where this fixation with those polynomials comes from.

Your y vector? Wrong. Your H matrix? Wrong again.

If you must insist on using those polynomials, here's what I'd recommend: You have a range of x values in your plot. Let's say you have 100 x values, equally spaced between 0 and your max value. Those are the values to plug into your H matrix.

Use the polynomials to synthesize sets of y values, one for each polynomial.

Combine all of them into a single large problem and solve for a new set of coefficients. If you want a 3rd order polynomial, you'll only have four coefficients and one equation. It'll represent the least squares best approximation of all the synthesized data you created with your four polynomials.