deriving surface equation form data on a table
Show older comments
i have a table with 3 variables(B/H)= 1,2,3,4,5,6,7,8 and fi= 0,10,20,30 and h which is depend on (B/H) and fi that contains 32 values. for example for fi=0 and (B/H)=1 >>h=1 fi=0 and (B/H)=2 >>h=1.02 ...... fi=30 and (B/H)=8 >>h=14800
>is there any way in MATLAB to get an surface equation for h in terms of (B/H) and fi??
h:[ 1 1.02 1.11 1.21 1.3 1.4 1.59 1.78
1 1.11 1.35 1.62 1.95 2.33 3.34 4.77
1.01 1.39 2.12 3.29 5.17 8.29 22 61
1.13 2.5 6.36 17.5 50 150 1400 14800 ]
4 Comments
Walter Roberson
on 30 Jun 2011
There are an infinite number of surface equations that would fit the data perfectly. Which one do you want?
milad babaei
on 30 Jun 2011
Sean de Wolski
on 30 Jun 2011
There can be at least one polynomial of order>(number elements) that fits perfectly. Thus from n-> infinity: To infinity and beyond!
milad babaei
on 1 Jul 2011
Answers (1)
Andrei Bobrov
on 30 Jun 2011
BHv= [1,2,3,4,5,6,7,8];
fiv= [0,10,20,30];
h = rand(length(BHv),length(fiv))*30+10;
[fim BHm] = meshgrid(fiv,BHv);
[XI,YI] = meshgrid(linspace(fiv(1),fiv(end),100),linspace(BHv(1),BHv(end),100));
1 variant use 'interp2'
F1 = @(fi,BH)interp2(fim,BHm,h,fi,BH);
surf(F1(XI,YI))
2 variant use 'TriScatteredInterp'
F = TriScatteredInterp(fim(:),BHm(:),h(:));
figure,surf(F(XI,YI))
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!