Discussion about math, puzzles, games and fun.   Useful symbols: ÷ × ½ √ ∞ ≠ ≤ ≥ ≈ ⇒ ± ∈ Δ θ ∴ ∑ ∫ • π ƒ -¹ ² ³ °

You are not logged in.

Post a reply

Write your message and submit
|
Options

Topic review (newest first)

bobbym
2013-11-12 02:37:57

Hi;

That is the correct least squares fit.

Now from there you have an overdetermined system of linear equations. Since a is a 9 x 6 matrix you can not invert it.

We start with these 9 equations:

When we substitute x and y for each point we get:

Now the formula to least square an overdetermined system is

The final bivariate polynomial is

which is the same as above.

elamkumaran
2013-11-12 02:27:36

Hi,

I hope you can see now..pls confirm

bobbym
2013-11-12 02:20:15

Hi;

I can not see your bivariate xy data, please format it a little better.

elamkumaran
2013-11-12 02:15:21

Hi,

I have following bivariate data.
(y)| 800     1000     1200
-------------------------------------
(x)   |
1150| 1380.4  1500.2   1614.5
|
1200| 1377.7  1499.0   1613.6
|
1250| 1375.2  1497.1   1612.6

The correct solution for this in terms of bi-variate equation (a+bx+cy+dx^2+ey^2+fxy)
914.033 - 0.0205000x + 0.645500y - 0.000040000x^2 - 0.000077500y^2 + 0.000082500xy.

But when i use matlab c=inv(A) * b, i get coefficient which produces more errors. Following are the coefficient produced by matlab

a = -8.12E+03
1.52E+01
4.61E-01
-6.46E-03
-8.56E-05
2.50E-04

What i am looking for is high accuracy in terms of 0.5 error or less than that. Is there any other way/tool i can calculate the coefficients with very high accuracy? pls suggest.

matlab code:
a=[9 10800 9000 12975000 9240000         10800000
10800 12975000 10800000 15606000000 11088000000     12975000000
9000 10800000 9240000 12975000000 9720000000      11088000000
12975000 15606000000 12975000000 18792000000000 13321000000000  15606000000000
9240000 11088000000 9720000000 13321000000000 10450000000000  11664000000000
10800000 12975000000 11088000000 15606000000000 11664000000000  13321000000000];

b = [13470.3
16163800
13611800
19418500000
14112200000
16333700000];

ans = inv(a)*b

Board footer

Powered by FluxBB