Nu vill vi ha en anpassad funktion till vårat data för att bestämma, enkelt förklarat, k-värdet (lutningen) på funktionen.
Efter test i Excel med hjälp av linjärisering av datan fick vi fram att k-värdet är 4,25.
Men nu är det MATLAB som gäller.
Jag får det att fungera skitbra för ett annat samband, men här vill det inte alls anpassa sig efter funktionen...
Känns som om jag har testat det mesta nu, men jag får verkligen inte ut värdet i MATLAB.
Vi har fått en liten guide för hur man gör detta, men den är _minst_ sagt bristfällig...
Såhär ser koden ut;
Kod: Markera allt
t = 30; % Tid (s)
m = [6 25 39 15 2]; % Vattenmassa per 30 sekunder. (g)
Q2 = ((m./1000)/998.2)/t % Vattenflöde (m^3/s)
d = [1.07 1.54 1.75 1.37 0.88]./1000 % Rördiametrar (m)
plot(d,Q2,'o')
xlabel('d [m]');
ylabel('Q [m^3/s]');
title('Uppmätt flöde för olika diametrar.');
E = @(b) sum((d-b(1)*Q2.^b(2)).^2);
c = fminsearch(@(b) E(b), [5 1])
l_fin=linspace(0,0.001,200);
t_fin=c(1)*l_fin.^c(2);
plot(d,Q2,'o',l_fin,t_fin,'r');
xlabel('d [m]')
ylabel('Q [m^3/s]');
title('Funktion anpassad för \pi1 (Flöde för olika diametrar)');
legend('Mätdata','Anpassad funktion');
Ser ni var felet finns? Finns det bättre sätta att göra detta på?