Naturvetenskaplig Problem-lösning

Ann-Marie Pendrill, March 1996

LINJÄRISERING och tolkning av diagram

För att tolka experimentella data är det ofta användbart att plotta sina data så att man får en rät linje. Här föjler några exempel på hur detta kan användas.

Galilei, rullande kulor och gravitation

För Gaililei var det enklare att mäta längd än tid. Galilei utförde experiment med en kula i en ränna ner mot ett horisontellt underlag där kulan fick rulla ett kort stycke innan den föll 828 längdenheter ner mot marken. Tabellen (som är hämtad från en figur i Bodil Jönsson och Nina Reistad "Experimentell Fysik", Studentlitteratur, 1987, s 70-71) ger hans värden för utgångshöjd och kastvidd.
Utgångshöjd Kastvidd
300 800
600 1172
1131
800 1328
1306
828 1340
1330
1000 1500
1460

LINJÄRISERING

Här kommer en övning i att omforma några vanliga funktionssamband: Commandot "fplot" är användbart för att rita en funktion. Gör "help fplot" för att se hur det används!

Använd MATLAB för att plotta y som funktion av x för följande funktioner. Välj själv lämpliga värden på konstanterna a och b och ett lämpligt intervall i x. Försök sedan att omforma funktionen så att du får ett samband som ger en rät linje. Plotta detta samband och visa hur du ur den resulterande figuren kan få fram a och b.

y=ax b y=a+bx2 y=a+bx1/2
y=(a+bx)1/2 y=a/x1/2 + bx1/2 y=(a/x+bx)1/2
y=ax2 / (b+ x2) y=a exp(bx) y=a exp(b/x)
Diskutera med varandra och ta upp med er handledare om ni får problem.

Som avslutande övning föreslår jag att ni konstruerar en funktion, generar en värdetabell för x och y, ger dem till en annan gruppmedlem (t.ex. som datafiler) som skall bestämma vilken funktion det är.

Exempel på matlab-kod (Vlken funktion är det?)

 fplot('3/sqrt(x)+4*sqrt(x)',[0.01 10])  % Ritar funktionen
 
 x=[0.01:0.1:2];   % Genererar x-värden
 y=(3./sqrt(x)+4*sqrt(x)); %Generar funktionsvärden
 hold on
 plot (x,y,'x')    % Rita in värdena
axis ([0 2 5 12])
 hold off
 plot(log(x),log(y),'o')  %log-log plot
 plot (x,y.^2*x,'x')   %linjarisering?
 

Prova gärna att ändra på x-värdena, funktion, axlar, etc.


Vilka funktioner beskrivs av y(x) och z(x)?
 x=[0.2:0.2:1 1.5:0.5:5];

 y=[0.12  0.48 1.08  1.92 3.00 6.75 12.00 18.75 27.00 36.75 48.00 60.75 75.00]; 
 
 z=[5.04 2.660 2.0267 1.89 2. 2.9167 4.5 6.65 9.3333 12.5357 16.25 20.4722 25.2]; 
Titta på dem genom kommandona
plot(x,y,'*')
resp
plot(x,z,'x')

"Subplot" och olika linjäriseringsförsök

Funktionerna kan också studeras i mer detalj i olika "subplot", t.ex. för y(x)
subplot(2,2,1)
plot(x,y,'*'), title('y vs x')

subplot(2,2,2)
plot(x.^2,y,'x'), title('y vs x^2')

subplot(2,2,3)
plot(x,y.^0.5,'+'), title('y^0.5 vs x'),xlabel('x'), ylabel('y^0.5')

subplot(2,2,4)
plot(log(x),log(y),'o'), title('log y vs log x'), xlabel('log x'),ylabel('log y')
Funktionen som beskrivs av z är mer komplicerad:
subplot(2,2,1)
plot(x,z,'*'), title('z vs x')

subplot(2,2,2)
plot(x,x.*z,'*'), title('x z vs x')

subplot(2,2,3)
plot(log(x),log(z),'o'), title('log z vs log x')

subplot(2,2,4)
plot(x.^3,x.*z,'+'), title('xz vs x^3')

Kanske vill du byta axel i den sista grafen? Kanske lägga in ett rutnät?
axis([0 5 0 5])
grid

Flera övningar i matlab och i linjärisering av t.ex. Sportresultat genom tiderna eller exponentiell tillväxt finns on-line.


Ann-Marie.Pendrill@fy.chalmers.se
Detta dokument är bäst on-line:
http://fy.chalmers.se/~f3aamp/teaching/np/npmat.html