Skillnad mellan versioner av "MATLAB-övningar"

Från KFKA10
Hoppa till: navigering, sök
(Allmän programmering)
Rad 4: Rad 4:
  
  
== Allmän programmering ==
+
= Allmän programmering =
  
 
Innan du börjar, se till att du har en underkatalog till din hemkatalog där du lägger alla Matlab-script. Under denna kan du sedan lägga ytterligare underkataloger för enskilda övningar, som t.ex. den här.
 
Innan du börjar, se till att du har en underkatalog till din hemkatalog där du lägger alla Matlab-script. Under denna kan du sedan lägga ytterligare underkataloger för enskilda övningar, som t.ex. den här.
Rad 10: Rad 10:
 
Skapa ett script, skriv in koden, spara scriptet och kör det med Run-knappen.
 
Skapa ett script, skriv in koden, spara scriptet och kör det med Run-knappen.
  
===Enkelt program===
+
==Enkelt program==
  
 
'''Uppgift:''' Skriv ett program som beräknar volymen för en ideal gas, med trycket 5.2 bar, substansmängden 2.4 mol och temperaturen 15 grader. Värdena ska läggas i variabler så att själva uträkningen inte innehåller några siffror.
 
'''Uppgift:''' Skriv ett program som beräknar volymen för en ideal gas, med trycket 5.2 bar, substansmängden 2.4 mol och temperaturen 15 grader. Värdena ska läggas i variabler så att själva uträkningen inte innehåller några siffror.
Rad 28: Rad 28:
 
</div>
 
</div>
  
===Definiera funktion===
+
==Definiera funktion==
  
 
'''Uppgift:''' Skapa med hjälp av kommandot <code>function</code> en funktion <code>vol(n,T,p)</code> som returnerar volymen för en ideal gas. Använd funktionen för att lösa samma problem som i förra uppgiften.
 
'''Uppgift:''' Skapa med hjälp av kommandot <code>function</code> en funktion <code>vol(n,T,p)</code> som returnerar volymen för en ideal gas. Använd funktionen för att lösa samma problem som i förra uppgiften.
Rad 46: Rad 46:
  
  
===Anonym funktion===
+
==Anonym funktion==
  
 
'''Uppgift:''' Gör samma sak med en så kallad anonym funktion, som beskrivs i datorlabbhandledningen. Låt funktionen ligga i en variabel <code>vola</code> så att du kan använda den på samma sätt som din föregående funktion.
 
'''Uppgift:''' Gör samma sak med en så kallad anonym funktion, som beskrivs i datorlabbhandledningen. Låt funktionen ligga i en variabel <code>vola</code> så att du kan använda den på samma sätt som din föregående funktion.
Rad 60: Rad 60:
 
</div>
 
</div>
  
== Specifikt om numerisk integrering och numerisk lösning av differentialekvationer ==
+
= Specifikt om numeriska funktioner =
  
 +
==Integral==
 +
'''Uppgift''': Definiera funktionen <math>z(p,s)=\frac{1}{\sqrt{p}+s}</math>$. Beräkna integralen
 +
:<math>\int_{p_1}^1 z(p_1,s)ds \;\;\;\;</math> där <math>\;\;\;\; p_1=\int_0^1 z(p,5)dp </math>
  
 +
'''Svar:''' 0.8664  (<math>p_1=0.1768</math>)
  
 +
==Ordinär differentialekvation (ODE)==
  
 +
'''Uppgift:''' Beräkna <math>p(2)</math> om <math>p(1)=1/3<math> och <math>\frac{dp}{ds}=\exp(z(p,s))</math> där <math>z(p,s)</math> är samma funktion som i föregående uppgift.  (Tips: tänk på vad som motsvarar <math>x</math> och <math>y</math> här.
  
+
'''Svar:''' 1.848
 
 
 
 
1. Definiera funktionen $z(p,s)=\frac{1}{\sqrt{p}+s}$. Beräkna integralen
 
\begin{displaymath}
 
\int_{p_1}^1 z(p_1,s)ds \;\;\;\; \textrm{där} \;\;\;\; p_1=\int_0^1 z(p,5)dp 
 
\end{displaymath}
 
 
 
{\bf Svar:} 0.8664  ($p_1=0.1768$)
 
\\
 
 
 
2. Beräkna $p(2)$ om $p(1)=1/3$ och $\frac{dp}{ds}=\exp(z(p,s))$ där $z(p,s)$ är samma funktion som i föregående uppgift.  (Tips: tänk på vad som motsvarar $x$ och $y$ här.)
 
 
 
{\bf Svar:} 1.848
 

Versionen från 8 november 2017 kl. 13.10

För den som föredrar att först bli van vid MATLAB innan du ger dig i kast med värmepumpsuppgiften finns här några rena MATLAB-uppgifter att träna på. Första delen syftar till att ge steg-för-steg introduktion till programmering i MATLAB (d.v.s. inte den "miniräknar"-aktiga användningen i MATLAB som ni redan är förtrogna med sedan introduktionskursen i MATLAB). Andra delen handlar om de specifika funktioner , och här ges inte fullständig beskrivning utan det förutsätts att man också läst labbhandledningen till datorlabben.

I båda delarna ges lösningsförslag som gömda avsnitt. Det är inte meningen att du ska använda detta utom som sista utväg om du kört fast.


Allmän programmering

Innan du börjar, se till att du har en underkatalog till din hemkatalog där du lägger alla Matlab-script. Under denna kan du sedan lägga ytterligare underkataloger för enskilda övningar, som t.ex. den här.

Skapa ett script, skriv in koden, spara scriptet och kör det med Run-knappen.

Enkelt program

Uppgift: Skriv ett program som beräknar volymen för en ideal gas, med trycket 5.2 bar, substansmängden 2.4 mol och temperaturen 15 grader. Värdena ska läggas i variabler så att själva uträkningen inte innehåller några siffror.

Svar: 11.1 liter

R=8.3145;
p=5.2e5;
T=15+273.15;
n=2.4;
V=n.*R.*T./p      
%Notera att vi redan nu anger att det är elementvis multiplikation, 
ifall vi i framtiden vill använda uttrycket för vektorer.

Definiera funktion

Uppgift: Skapa med hjälp av kommandot function en funktion vol(n,T,p) som returnerar volymen för en ideal gas. Använd funktionen för att lösa samma problem som i förra uppgiften.

Observera att function kan användas antingen lokalt i scriptet, eller i en egen m-fil med namn efter funktionen (vol.m) Testa gärna båda sätten.

volume=vol(2.4, 15+273.15, 5.2e5)

function V=vol(n,T,p)
R=8.3145;
V=n.*R.*T./p    ;  
end


Anonym funktion

Uppgift: Gör samma sak med en så kallad anonym funktion, som beskrivs i datorlabbhandledningen. Låt funktionen ligga i en variabel vola så att du kan använda den på samma sätt som din föregående funktion.

R=8.3145;
vola = @(n, T, p) n.*R.*T./p;  

volume=vola(2.4, 15+273.15, 5.2e5)

Specifikt om numeriska funktioner

Integral

Uppgift: Definiera funktionen Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z(p,s)=\frac{1}{\sqrt{p}+s}} $. Beräkna integralen

Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \int_{p_1}^1 z(p_1,s)ds \;\;\;\;} där Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \;\;\;\; p_1=\int_0^1 z(p,5)dp }

Svar: 0.8664 (Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle p_1=0.1768} )

Ordinär differentialekvation (ODE)

Uppgift: Beräkna Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle p(2)} om Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle p(1)=1/3<math> och <math>\frac{dp}{ds}=\exp(z(p,s))} där Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z(p,s)} är samma funktion som i föregående uppgift. (Tips: tänk på vad som motsvarar Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle x} och Misslyckades med att tolka (MathML med SVG- eller PNG-återgång (rekommenderas för moderna webbläsare och tillgänglighetsverktyg): Ogiltigt svar ("Math extension cannot connect to Restbase.") från server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle y} här.

Svar: 1.848