<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://efwiki.bozack.dk/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://efwiki.bozack.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Silas</id>
		<title>Eksperimentel Fysik WIKI - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://efwiki.bozack.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Silas"/>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Special:Contributions/Silas"/>
		<updated>2026-06-14T20:37:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge4</id>
		<title>opgaver:Uge4</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge4"/>
				<updated>2014-05-12T20:12:05Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: RO: linie --&amp;gt; linje&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I denne opgave skal I, lige som i sidste uge, fabrikere jeres egne data - denne gang en Gaussisk linjeprofil med en bestemt bredde og placering, med Poisson statistik på tælletallene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 1 - Spektrometer ==&lt;br /&gt;
Vi forestiller os et spektrometer, der tæller fotoner som funktion af bølgelængde; én bølgelængde ad gangen. Vi skal måle en enkelt spektrallinje. Linjens amplitude er 100 tællinger per sekund, linjens centrum 5000 Å, og den har bredde $\sigma$ 50 Å. Der er en baggrund på 10 tællinger per sekund. Usikkerheden på tællinger er givet som $\sqrt{N}$ tællestatistik, og antages gaussisk.&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål 1 - Simulation af data ===&lt;br /&gt;
Simulér en måleserie fra 4500 Å til 5500 Å med step af 10 Å, ét sekund per punkt. Brug MATLAB &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; funktionen til at fitte en Gaussisk linjeprofil til dataen. Vis de simulerede data og det bedste fit i samme plot.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Ligesom i sidste uge skal vi simulere nogle støjede data ud fra en kendt model. Start med at lave dine model-data, og tilføj så støj ved at lægge et tal til hvert af punkternes tælletal-værdi. Støjen skal være et tal der er Gaussisk fordelt omkring nul, med en bredde der er usikkerheden på punktet (og usikkerheden på punktet er jo givet ved tællestatistik!). Husk at tælletal er positive heltal, så du er nødt til at runde støjen op eller ned til heltal.&lt;br /&gt;
&lt;br /&gt;
Det kan være en god idé at læse lidt i MATLAB hjælpen om funktionerne &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;round&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;abs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Det er vigtigt at holde styr på forskellen mellem bredden af spektrogram-peaken som du laver data over, og bredden på den støj du lægger til dine simulerede datapunkter.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først defineres parametrene for den Gaussiske linjeprofil-model. Her defineres signalets amplitude &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, baggrundens amplitude &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;, centrum af peaken &amp;lt;code&amp;gt;x0&amp;lt;/code&amp;gt; og bredden af peaken &amp;lt;code&amp;gt;sig&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;a = 100;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;b = 10;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x0 = 5000;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sig = 50;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
videre skal akserne for eksperimentet bestemmes; start og slut for hvor der skal måles, &amp;lt;code&amp;gt;x_min&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;x_max&amp;lt;/code&amp;gt;, samt step-størrelsen &amp;lt;code&amp;gt;x_step&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x_min = 4500;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x_max = 5500;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x_step = 10;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med disse definitioner er det nu muligt automatisk at lave sin &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-akse med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x_exp = x_min : x_step : x_max;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og til sidst kan man også finde hvor lang tid der måles per datapunkt,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kan man udregne sit model-datasæt ved at indsætte alle sine informationer i en Gaussisk funktion,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y_model = t * a * exp( - (( x_exp - x0 ).^2) ./ (2*sig^2) ) + t * b;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu er det tid til at lægge støj på punkterne, så man får et simuleret datasæt. Først og fremmest findes en vektor der indeholder usikkerheden på hvert punkt af sin model. Modellen er for tælletal, så denne usikkerhed er bare $\sqrt{N}$, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;err_model = sqrt(y_model);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det nye datasæt kan så laves ved at lægge en Gaussisk støj med bredden givet element-vist i &amp;lt;code&amp;gt;err_model&amp;lt;/code&amp;gt;, runde af til nærmeste heltal, og til sidst sørge for at tallet er positivt:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y_exp = abs(round( y_model + err_model .* randn(size(err_model)) ));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usikkerheden på de simulerede datapunkter er dog ikke den usikkerhed man fandt for modellen. Hvis man målte disse punkter i den virkelige verden ville man i stedet bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;err_exp = sqrt(y_exp);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan nu lave et fit til de simulerede data, ved hjælp af MATLAB's indbyggede &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; funktion. Denne gang skal man fitte til en funktion man selv skriver ind:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;f1 = fit(x_exp',y_exp','a*exp(-((x-b).^2)/(2*c^2))+d',...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;'Startpoint', [a*t x0 sig b*t]);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Her er &amp;lt;code&amp;gt;Startpoint&amp;lt;/code&amp;gt; option'en de første gæt til de fire parametre, altså amplitude, centrum, bredde og baggrund. Her er de bare givet som modellens værdier - men i den virkelige verden kender man selvfølgelig ikke modellen perfekt, og man må bare give nogle cirka-gæt.&lt;br /&gt;
&lt;br /&gt;
De fundne fit-parametre kan man få fra &amp;lt;code&amp;gt;f1&amp;lt;/code&amp;gt; objektet. Selve &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; funktionen kalder dem for &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt; - efter hvad der blev skrevet som fit-funktion. De numeriske værdier af de bedste parameter-værdier fås så ved f.eks. &amp;lt;code&amp;gt;f1.a&amp;lt;/code&amp;gt;. De fire interessante fittede parametre er altså&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;a_fit = f1.a/t;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x0_fit = f1.b;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sig_fit = f1.c;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;b_fit = f1.d/t;&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:uge4fig2.png|frame|De simulerede datapunkter for en Gaussisk linjeprofil, sammen med et Gaussisk fit.]]&lt;br /&gt;
og med disse kan man udregne fit-linjen&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x_fit = x_min:0.05:x_max;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y_fit = t*a_fit(j)*exp(-((x_fit-x0_fit(j)).^2)./(2*sig_fit(j)^2)) + t*b_fit(j);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Til sidst kan man plotte de simulerede datapunkter sammen med fit-linjen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;errorbar(x_exp,y_exp,err_exp,'b.','MarkerFaceColor', [0.4 0.4 0.8],...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;'MarkerEdgeColor',[0.4 0.4 0.8])&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x_fit,y_fit,'g-')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([x_min-50 x_max+50 0 (a+b)*1.2*t])&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Bølgelængde [Å]')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Intensitet [tællinger/s]')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figuren kan ses her til højre.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål 2 - Flere måleserier ===&lt;br /&gt;
Kør 100 måleserier og lav histogrammer over fitværdierne. Brug histogrammerne til at bestemme præcisionen af eksperimentet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Du skal bare bruge den samme kode som du brugte til spørgsmål 1, men nu skal du &amp;quot;pakke&amp;quot; den ind i et loop, hvor du yderligere gemmer dine fit-parametre i arrays, så de kan plottes bagefter.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at gøre dette, skal man lave et loop over adskillige data-simulationer og fits. Som det første skal man initialisere arrays der skal gemme fit-parametrene:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;N = 100;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;a_fit = zeros(1,N);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;b_fit = zeros(1,N);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x0_fit = zeros(1,N);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sig_fit = zeros(1,N);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan man starte sit loop lige før man udregner sine eksperiment-data, altså&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for j = 1:N&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;y_exp = abs(round( y_model + err_model .* randn(size(err_model)) ));&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fit parametrene gemmes, og så kan loopet stoppes igen,&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;a_fit(j)   = f1.a/t;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;x0_fit(j)  = f1.b;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;sig_fit(j) = f1.c;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;b_fit(j)   = f1.d/t;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan man lave histogrammer over parametrene ved hjælp af MATLAB's &amp;lt;code&amp;gt;hist&amp;lt;/code&amp;gt; funktion, og se på formen af dem. F.eks. kan man bestemme bredden af distributionerne, for at se hvor nemt det var for fittet at finde den rigtige værdi.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål 3 - Planlægning af måling ===&lt;br /&gt;
(SVÆRT) Hvis der er 100 sekunder til rådighed, hvordan skal målingen så planlægges for at bestemme linjens midtpunkt bedst? Og hvad med linjens bredde?&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Tænk over hvordan du ville gøre hvis du faktisk sad ved et eksperiment og intet vidste på forhånd. Ville du bare gå i gang fra en ende af og måle punkt efter punkt, eller ville du hoppe rundt og håbe på at du var heldig? Tænk over forskellige fordele og ulemper.&lt;br /&gt;
&lt;br /&gt;
Når du har tænkt over de forskellige måder du kunne finde på at måle, så prøv at lave målingerne ved hjælp af MATLAB, og kør et loop så du kan sammenligne distributionerne for de fundne fitte-parametre.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Som en første iteration kan man se hvad der sker med statistikken hvis man måler på en ligeligt opdelt linje, med samme tælletid for hvert punkt. Start med at omdefinere din værdi af &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; til at blive udregnet med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t_meas = 100;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;t = t_meas / length(x_exp);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &amp;lt;code&amp;gt;t_meas&amp;lt;/code&amp;gt; er den totale tid der skal måles i. Nu kan du køre dit loop, og se på distributionen af dine fitte-parametre. Prøv evt. at ændre på step-størrelsen af dine målinger, så du får færre eller flere datapunkter, mens du stadig tæller den samme tid totalt. Ændrer dette noget ved distributionerne?&lt;br /&gt;
&lt;br /&gt;
Du kan også prøve at lave en dataserie hvor du først måler meget kort tid på mange ligeligt fordelte punkter, og så bagefter måler i lidt længere tid nogle af de steder hvor det ser ud til at der er en peak.&lt;br /&gt;
&lt;br /&gt;
Hvis du gerne vil kode lidt mere avanceret, kan du jo forsøge at kode en søger-mekanisme, som altid vil forsøge at finde det højeste punkt af en peak.&lt;br /&gt;
&lt;br /&gt;
Der er rigtig mange muligheder for at måle på det givne signal, og mange af dem er lige gode. Det vigtige med denne opgave er at I tænker over hvordan I ville optimere den tid I er givet til et sådant eksperiment.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål 4 - Stor baggrund ===&lt;br /&gt;
(SVÆRT) Lad baggrunden være 100 tællinger per sekund og amplituden være 10 tællinger per sekund. Hvor længe skal der tælles for at det kan afgøres, om der er en peak (amplitude signifikant større end nul)?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at udregne svaret, løses det hvornår toppunktet for peaken ligger $n$ gange sin usikkerhed plus $n$ gange usikkerheden på baggrunden, væk fra baggrunden. Dette løses med&lt;br /&gt;
&lt;br /&gt;
:$\begin{align}&lt;br /&gt;
(a+b)t - n\sqrt{(a+b)t} &amp;amp;= bt + n \sqrt{bt} \\&lt;br /&gt;
at - n\sqrt{(a+b)t} &amp;amp;= n \sqrt{bt} \\&lt;br /&gt;
at &amp;amp;= n (\sqrt{bt} + \sqrt{(a+b)t}) \\&lt;br /&gt;
a^2 t^2 &amp;amp;= n^2 (bt + (a+b)t + 2 \sqrt{b(a+b)}t) \\&lt;br /&gt;
a^2 t &amp;amp;= n^2 (2b + a + 2\sqrt{b(a+b)}) \\&lt;br /&gt;
t &amp;amp;= \dfrac{n^2 (2b + a + 2\sqrt{b(a+b)})}{a^2}&lt;br /&gt;
\end{align}$&lt;br /&gt;
&lt;br /&gt;
så hvis f.eks. $a=10$, $b=100$ og $n=1$, så er $t=4.2\,\text{s}$ for et enkelt målepunkt i toppen af peaken. Hvis man vil have bedre sikkerhed, så f.eks. $n=2$ (også kaldt et signifikant signal), så er $t=16.8\,\text{s}$.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge4_spektrometer.m|opgaver_uge4_spektrometer.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge2</id>
		<title>opgaver:Uge2</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge2"/>
				<updated>2014-04-21T16:09:05Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Denne uge er der kun en enkelt opgave. I bliver givet nogle data, som I så skal arbejde med. Når I er færdige med nedenstående spørgsmål anbefales det at I leger lidt videre med data, for at vænne jer til at arbejde med større datasæt i MATLAB. I kan også prøve at indlæse nogle af jeres egne data (I har da gemt data fra jeres tidligere kurser, ikke?).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 1 - Saras data ==&lt;br /&gt;
* Start med at hente pakken med datasættene: [[Media:ExerciseSarasData.zip|ExerciseSarasData.zip]]&lt;br /&gt;
&lt;br /&gt;
Vi skal her arbejde med ægte data, fra Sara Eisenhardts speciale, 2010. Eksperimentet var måling af det magnetiske moment af en prøve af stoffet LiHoF&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;, som kun er magnetisk ved temperaturer under 1.5 K. Det er jeres opgave at analysere Saras data og producere et godt plot. &lt;br /&gt;
&lt;br /&gt;
Magnetiseringen blev målt med et kraftmoment-magnetometer, en opstilling helt analog til jeres vægt-vippe opstilling. Magnetiseringen i et påtrykt felt giver anledning til et kraftmoment på prøven, $\tau = M B$. Dette giver anledning til en bøjning af en vippe, som igen forårsager ændring af modstanden i en strain gauge. Denne måles som spænding over en Wheatstonebro med en lock-in forstærker.&lt;br /&gt;
&lt;br /&gt;
I dataserierne er bl.a. angivet målt spænding og påtrykt $B$-felt som en tidsserie, der er samplet ofte. Resten er ikke vigtigt her. Se den &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt;-fil der er vedlagt dataen for tips til hvordan data kan indlæses.&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Overvej, hvordan data bedst kan præsenteres. Skal de skaleres, rebinnes, skal nogle af data smides væk, eller transformeres på anden måde? Lav en serie figurer.&lt;br /&gt;
&lt;br /&gt;
Start gerne med at arbejde med temperatur versus spænding for datasæt nummer 97, da det er det sjoveste. Temperaturen er i kolonne nummer 4, mens spændingen er i kolonne 9.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Brug dataindlæsnings-metoden som er vist i den vedlagte &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt;-fil til at indlæse dine data. Husk at pakke datafilerne ud i den mappe som du kører MATLAB i - ellers kan programmet jo ikke finde ud af hvor de ligger.&lt;br /&gt;
&lt;br /&gt;
For hjælp til at plotte, kig i kapitel 4 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Start med at arbejde med datasæt nummer 97, og plot temperatur versus spænding. Er der nogle punkter der ligger underligt? Prøv at se om du kan fjerne disse fra datasættet.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Et eksempel på en typisk indlæsning af data kan være koden&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;fid = fopen([datadir,'2010_01_0097.dat']);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;Data0097 = cell2mat(textscan(fid, ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;      '%n %n %n %n %n %n %n %n %n %n %n %n %n %n %n %n %n', ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;      'headerlines',14));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;fclose(fid);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hvor &amp;lt;code&amp;gt;datadir&amp;lt;/code&amp;gt; er en streng der fortæller MATLAB hvor dataen er gemt, f.eks. &amp;lt;code&amp;gt;data/saras/&amp;lt;/code&amp;gt;. Nu er hele datafilen blevet indlæst i en matrice ved navn &amp;lt;code&amp;gt;Data0097&amp;lt;/code&amp;gt;, og denne kan man så arbejde videre med.&lt;br /&gt;
&lt;br /&gt;
[[File:uge2fig1.png|frame|Plot af temperatur versus spænding for datafil nummer 97.]]&lt;br /&gt;
For at plotte temperatur (kolonne 4) versus spænding (kolonne 9), kan man bruge koden&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;plot( Data0097(1:end,4),Data0097(1:end,9),'.','MarkerFaceColor', ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;     [0.4 0.4 0.8],'MarkerEdgeColor',[0.4 0.4 0.8] )&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;title('Originale data','FontWeight','b','FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Temperatur [K]','FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Spænding [V]','FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([0 4.2 9.45e-7 9.8e-7])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne figur kan du se her til højre.&lt;br /&gt;
&lt;br /&gt;
Man kan nu se lidt nærmere på figuren, og se at der er nogle punkter der ligger underligt i forhold til alle de andre - f.eks. langt under kurven i den venstre del af figuren. Disse punkter er fejlmålinger, og dem vil man gerne have væk fra sit datasæt. &lt;br /&gt;
[[File:uge2fig2.png|frame|Der er brug for en ny counter til at gemme punkterne, da det nye array ikke skal have tomme linjer.]]&lt;br /&gt;
Den nemmeste måde at fjerne fejlpunkter på, er ved at sætte nogle grænser for hvor man tillader data at være - og så loope igennem alle datapunkter og kun gemme dem der overholder reglerne. F.eks. kan man fjerne nogle af fejlpunkterne med koden&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;k=0;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;for n = 1:length( Data0097(1:end,4) )&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if Data0097(n,4) &amp;lt; 1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        if Data0097(n,9) &amp;gt; 9.64*10^(-7)&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;            if Data0097(n,9) &amp;lt; 9.85*10^(-7)&amp;lt;/code&amp;gt;&lt;br /&gt;
:::::&amp;lt;code&amp;gt;                k = k + 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::::&amp;lt;code&amp;gt;                DataCorrected(k,2) = Data0097(n,9);&amp;lt;/code&amp;gt;&lt;br /&gt;
:::::&amp;lt;code&amp;gt;                DataCorrected(k,1) = Data0097(n,4);&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;            end&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else &amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        k = k + 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        DataCorrected(k,2) = Data0097(n,9);&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        DataCorrected(k,1) = Data0097(n,4);&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne kode laver en counter &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; der tæller hvor mange punkter der er blevet &amp;quot;godkendt&amp;quot; som gode data. Den tjekker nu for hvert datapunkt, &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, om den overholder kriterierne, og hvis den gør gemmes punktet i det nye data-array &amp;lt;code&amp;gt;DataCorrected&amp;lt;/code&amp;gt;. Hvis punktet ikke overholder kriterierne, bliver det ikke gemt.&lt;br /&gt;
&lt;br /&gt;
Man kan også lave denne sortering vha. logiske variable i MATLAB, ved brug af koden&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC1 = Data0097(:,4) &amp;lt; 1.5;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC2 = Data0097(:,9) &amp;gt; 9.64*10^(-7);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC3 = Data0097(:,9) &amp;lt; 9.85*10^(-7);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC4 = Data0097(:,4) &amp;gt;= 1.5;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC5 = LOGIC1 + LOGIC2 + LOGIC3 == 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;LOGIC = LOGIC5 + LOGIC4 &amp;gt; 0;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;DataCorrected = NaN(length(Data0097(LOGIC,9)),2);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;DataCorrected(:,2) = Data0097(LOGIC,9);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;DataCorrected(:,1) = Data0097(LOGIC,4);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne kode laver boolean arrays (lister af &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; værdier, skrevet ud som 0'er og 1'ere hvis man skriver dem ud) for hvorvidt udtrykkene er sande eller ej. Disse udtryk kombineres så til nye boolean arrays, der til sidst bruges for at få de ønskede data ud af originaldataen.&lt;br /&gt;
&lt;br /&gt;
Andre dele af data der kan ses på: For datasæt 12, 13 og 14 er det interessant at se på magnetfelt (kolonne 2) versus spænding (kolonne 9) og magnetfelt versus magnetiseringen (de udregnes ud fra den givne formel, $\tau = MB$, og at $\tau$ antages at være proportional med spændingen).&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Overvej hvordan man kan udlede den indre støj på de målte data. Antag at der ikke er systematiske fejl, og tilføj dette til figurerne.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Se igen på temperatur versus spænding for datasæt 97 - der er rigtig meget støj, kan du gøre noget ved dette?&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at fjerne den indre støj i dataen kan man binne den - altså samle et antal punkter sammen til ét. For at kunne binne data er man først og fremmest nødt til at sortere det i en rækkefølge så punkterne ligger efter hinanden stigende på førstaksen. Dette gøres med koden (igen arbejdes der med temperatur versus spænding for datasæt 97, nu det korrigerede datasæt, som forklaret i løsningen til spørgsmål a)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;DataCorrectedSorted = sortrows(DataCorrected);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nu kan man så binne sine data, med f.eks. 100 punkter i hvert nyt punkt. Usikkerheden på hvert binnede punkt er SDOM.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;bin = 100;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;T(1) = sum( DataCorrectedSorted(1:bin,1) )/bin;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;T_u(1) = std( DataCorrectedSorted(1:bin,1) )/sqrt(bin); &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;U(1) = sum( DataCorrectedSorted(1:bin,2) )/bin;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;U_u(1) = std( DataCorrectedSorted(1:bin,2) )/sqrt(bin);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;number_of_datapoints = length( DataCorrectedSorted(1:end,1) );&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;number_of_datapoints_fixed = fix( length( DataCorrectedSorted(1:end,2) )/bin );&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;for n = 2:number_of_datapoints_fixed - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    T(n)   = sum( DataCorrectedSorted(n*bin+1:(n+1)*bin,1) )/bin;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    T_u(n) = std( DataCorrectedSorted(n*bin+1:(n+1)*bin,1) )/sqrt(bin);&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    U(n)   = sum( DataCorrectedSorted(n*bin+1:(n+1)*bin,2) )/bin;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    U_u(n) = std( DataCorrectedSorted(n*bin+1:(n+1)*bin,2) )/sqrt(bin);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:uge2fig3.png|frame|Plot af temperatur versus spænding for datafil nummer 97, korrigeret og binnet.]]&lt;br /&gt;
Disse binnede data kan, som illustration, plottes oven på de korrigerede data med koden:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;plot( DataCorrected(1:end,1),DataCorrected(1:end,2),'.','MarkerFaceColor', ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;      [0.4 0.4 0.8],'MarkerEdgeColor',[0.4 0.4 0.8] )&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;errorbar( T, U, U_u,'.','MarkerFaceColor',[0.1 0.1 0.6],...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;          'MarkerEdgeColor',[0.1 0.1 0.6] )&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;title(['Korrigeret data (bin = ' num2str(bin) ')'],'FontWeight','b', ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;      'FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Temperatur [K]','FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Spænding [V]','FontSize',12)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([0 4.2 9.45e-7 9.8e-7])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
denne figur er vist her til højre.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Overvej en fortolkning af data.&lt;br /&gt;
&amp;lt;!--{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
&lt;br /&gt;
{{hidden end}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge2_sara.m|opgaver_uge2_sara.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-21T10:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: MATLAB opgaver --&amp;gt; Statistik opgaver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== Statistik opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB og [[opgaver:uge1|tirsdags- eller torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1</id>
		<title>opgaver:Uge1</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1"/>
				<updated>2014-04-20T11:43:57Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: diskrepans forklaret&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse statistik-øvelser er redigerede udgaver af opgaverne 3.4, 3.25, 4.6, 4.28, 5.11 og 5.31 fra R. J. Taylor's ''An Introduction to Error Analysis''. &lt;br /&gt;
&lt;br /&gt;
Det er meningen af så meget som muligt af opgaverne skal laves i MATLAB. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 1 - Tælletal ==&lt;br /&gt;
Når en prøve med radioaktive atomer henfalder, vil antallet af radioaktive atomer falde, og prøvens radioaktivitet vil falde proportionalt med dette. For at undersøge denne effekt måler en fysiker på partiklerne der udsendes fra en radioaktiv prøve i løbet af to timer. Hun tæller antallet af partikler der udsendes i løbet af en 1 minut lang periode med halve timers intervaller, med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Tid gået, $t$ (timer): || 0.0 || 0.5 || 1.0 || 1.5 || 2.0 &lt;br /&gt;
|-&lt;br /&gt;
|Antal tællinger, $\nu$, på 1 minut: || 214 || 134 || 101 || 61 || 54&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at plotte antallet af tællinger imod den tid der er gået. Inkludér errorbars for at vise usikkerheden på tallene. (Negligér usikkerheder i den tid der er gået).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For en hjælp til hvordan man plotter data, se &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) guiden, der ligger på Absalon. Kapitel 4 indeholder en masse plotning generelt. Prøv at slå funktionen &amp;lt;code&amp;gt;errorbar&amp;lt;/code&amp;gt; op i MATLAB hjælpen bagefter.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig1.png|frame|Plottet som det burde se ud efter at have kørt denne kode.]]&lt;br /&gt;
For at plotte datapunkterne med usikkerheder skal data først indlæses. Usikkerhederne er kvadratroden af tælletallet, så&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = 0:0.5:2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [214 134 101 61 54];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_usikk = sqrt(nu);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan data plottes vha. MATLAB funktionen &amp;lt;code&amp;gt;errorbar(x,y,e)&amp;lt;/code&amp;gt;, der plotter $(x,y)$ data, hvor der er usikkerheden $e$ på $y$-dataen. En figur åbnes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
der plottes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;errorbar(t,nu,nu_usikk,'ro')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og til sidst laves der en &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for at blive ved med at plotte oven i det allerede lavede (ellers vil de næste kommandoer overskrive errorbar plottet). Jeg sætter nu også akser, titel og akselabels med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([-0.5 2.5 40 240])&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;title('Opgave 1 - Radioaktivt henfald')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Tid i timer')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Tælletal')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
En teori forudsiger at antallet af udsendte partikler burde falde eksponentielt ved $\nu = \nu_0 \exp{(-rt)}$, hvor der (i dette tilfælde) gælder at $\nu_0 = 200$ og $r = 0.693 \,\text{hr}^{-1}$. Plot denne forventede kurve på din graf oven på din tidligere graf, og kommentér på hvor godt data ser ud til at passe med den teoretiske forudsigelse.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at plotte en funktion skal man først definere sin førsteakse som en vektor, f.eks. &amp;lt;code&amp;gt;x = 0:0.01:1&amp;lt;/code&amp;gt;. Man kan også bruge &amp;lt;code&amp;gt;linspace(x,y,n)&amp;lt;/code&amp;gt; funktionen til at lave en liste fra $x$ til $y$ med $n$ punkter. Antallet af punkter definerer opløsningen på det plot man vil lave.&lt;br /&gt;
&lt;br /&gt;
Herefter kan man udregne sine værdier til andenaksen som sin funktion af førsteakseværdierne, f.eks. &amp;lt;code&amp;gt;y = sin(x)&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2.png|frame|Det endelige plot, der sammenligner data med usikkerheder med en teoretisk linje.]]&lt;br /&gt;
Man definerer linjen for teorien rent numerisk ved at lave en tids-akse som man selv bestemmer hvor detaljeret er, f.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tt = -0.25:0.01:2.25;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så kan man udregne den teoretiske linje ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_0 = 200; &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;r = 0.693;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_exp = nu_0 * exp(-r*tt);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man huskede sin &amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt; tidligere burde man nu bare kunne plotte oven i sit errorbar plot med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,nu_exp,'b:')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Som en sidste krone på værket kan man tilføje en legend med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;legend('Datapunkter','Teori-linje')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prøv at lave plottet igen med forskellige layouts af punkterne og linjen. F.eks. er der de forskellige farver &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; (rød), &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; (grøn), &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; (blå), &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; (gul), &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; (magenta) og &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; (sort); punkttyperne &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (lille prik), &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; (krydser), &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; (store prikker) og &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; (stjerner); og linjetyperne &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; (solid), &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; (prikker) og &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; (stiplet), og selvfølgelig mange flere. Prøv at finde disse options i MATLAB hjælpen under &amp;lt;code&amp;gt;LineSpec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Du kan også lege med egenskaber som &amp;lt;code&amp;gt;MarkerSize&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LineWidth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MarkerEdgeColor&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;MarkerFaceColor&amp;lt;/code&amp;gt; for at gøre linjen og punkterne mere tydelige.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Bonus ===&lt;br /&gt;
I uge 3 skal I lære hvordan man fitter en funktion til datapunkter i MATLAB - så i stedet for at plotte en given kurve vil I skulle plotte den bedst fittede kurve til data. &lt;br /&gt;
&lt;br /&gt;
{{hidden begin|toggle=right|title=Læs mere|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2fit.png|frame|Plottet som før, men nu også med en fit-linje.]]&lt;br /&gt;
Lad os sige at data allerede er indlæst i variablene &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; (med usikkerhed &amp;lt;code&amp;gt;nu_usikk&amp;lt;/code&amp;gt;), som ovenfor. Disse er også allerede plottet som det blev gjort i spørgsmål a. &lt;br /&gt;
&lt;br /&gt;
For at kunne fitte en linje skal man selvfølgelig først definere sin fitte-kurve, der i dette tilfælde vil være $\nu = \nu_0 \exp{(-rt)}$, hvor $\nu_0$ og $r$ nu er fitte-parametre. En funktion kan defineres på mange måder i MATLAB, men når man fitter med simple funktionsudtryk i MATLAB er det nemmest simpelthen bare at fodre fitte-rutinen med den direkte.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;cfun = fit(t',nu','a*exp(-b*x)')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;t'&amp;lt;/code&amp;gt; betyder den transponerede af &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;. Funktionen &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; kræver nemlig søjlevektorer som data, ikke rækkevektorer, som både &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; er defineret som. Objektet &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; indeholder nu information om fittet, og man kan plotte kurven med de bedste værdier af &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,cfun(tt),'g-')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
man kan også få parametrene ud ved at kalde variablene &amp;lt;code&amp;gt;cfun.a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;cfun.b&amp;lt;/code&amp;gt;. Det er også muligt at gå dybere ned i &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; objektet, men dette skal ikke uddybes her.&lt;br /&gt;
&lt;br /&gt;
Bemærk også at ovenstående ikke fodrer MATLAB med et start-gæt på de to fitte-parametre. Dette bør man normalt gøre, da programmet ellers vælger tilfældige startpunkter, og her ikke altid vil konvergere. Man kan gøre det ved at bruge &amp;lt;code&amp;gt;StartPoint&amp;lt;/code&amp;gt; option'en, og dette vil vi komme ind på senere.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 2 - Usikkerheden af et potensudtryk ==&lt;br /&gt;
Fra Barlow's regel (4.10) om usikkerheder af funktionsudtryk, ved vi at et $q = x^2$ har en relativ usikkerhed der er dobbelt så stor som den relative usikkerhed i $x$;&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = 2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Overvej nu det følgende (forkerte) argument: Vi kan tænke på $x^2$ som $x$ gange $x$, så&lt;br /&gt;
&lt;br /&gt;
:$ q = x \times x; $&lt;br /&gt;
&lt;br /&gt;
derfor vil der ifølge Barlow's regel (4.14) gælde at&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = \sqrt{ \left( \dfrac{\sigma_x}{x} \right)^2 + \left( \dfrac{\sigma_x}{x} \right)^2 }&lt;br /&gt;
                     = \sqrt2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Denne konklusion er forkert. Forklar hvorfor.&lt;br /&gt;
&lt;br /&gt;
Bonus: Prøv at undersøge dette i MATLAB ved at sammenligne den relative usikkerhed (SD divideret med gennemsnitsværdien) for en række af tilfældige tal med den relative usikkerhed på samme række af tal kvadreret. Du kan evt. læse i MATLAB-hjælpen hvad funktionen &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; gør. &lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Se på hvad antagelserne for at formel (4.14) gælder faktisk er - passer dette med hvad der arbejdes med i denne opgave?&lt;br /&gt;
&lt;br /&gt;
For at se på det i MATLAB kan man generere en række tilfældige tal vha. &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; funktionen. Slå den op i MATLAB hjælpen og se hvad den kan.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Konklusionen i den fejlagtige udledning er forkert fordi man har brugt udtrykket i formel (4.14) uden at overholde dennes antagelser - nemlig at de variable man ganger sammen er uafhængige. Og nu er $x$ jo fuldkommen afhængig af sig selv - hvorfor konklusionen altså kun kan være forkert.&lt;br /&gt;
&lt;br /&gt;
For at se på dette i MATLAB kan man starte med at lave en liste med normalfordelte tal&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 10 + randn(1,500);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at der lægges 10 til, da vi gerne vil dividere med gennemsnittet senere (og at dividere med nul er jo ikke så godt!).&lt;br /&gt;
&lt;br /&gt;
Man kan nu helt manuelt se på den relative usikkerhed på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i anden potens, ved at bruge de indbyggede MATLAB funktioner for standardafvigelse og gennemsnit, &amp;lt;code&amp;gt;std&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x.^2)/mean(x.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man finder at nummer to usikkerhed ovenfor ligner at man ganger den første med 2, ikke med $\sqrt{2}$, ved at sammenligne&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;2*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(2)*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og dermed er det altså også rent numerisk vist at den naive fremgangsmåde ikke er sand.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 3 - Flere tælletal ==&lt;br /&gt;
I Barlow kap. 3.3.1 kan I læse at i et tælleeksperiment er usikkerheden på en tælling givet af &amp;quot;kvadratrods-reglen&amp;quot; til at være kvadratroden af tallet. Denne regel kan gøres mere præcis med følgende udsagn: Hvis man tager adskillige tællinger&lt;br /&gt;
&lt;br /&gt;
:$ \nu_1, \nu_2, \ldots, \nu_N $&lt;br /&gt;
&lt;br /&gt;
af antallet $\nu$ af tilfældige hændelser der sker inden for tidsrummet $T$, så gælder der: (1) det bedste estimat for det sande gennemsnit af hændelser inden for tidsrummet $T$ er gennemsnittet $\overline\nu = \sum \nu_i/N$ af målingerne, og (2) ''standardafvigelsen'' (også kaldt SD, for Standard Deviation) af de observerede tal er approksimativt lig med ''kvadratroden'' af dette samme bedste estimat; altså, usikkerheden i hver måling er $\sqrt{\overline\nu}$. I specialtilfældet hvor der kun måles én gang, hvor man får et antal tællinger $\nu$, er det bedste estimat $\nu$, mens usikkerheden er kvadratroden $\sqrt\nu$. &lt;br /&gt;
&lt;br /&gt;
En fysiker bruger en Geiger-tæller til at måle antallet af kosmiske partikler der kommer til hans laboratorie i givne to-sekunders intervaller.  Han tæller dette tal 20 gange med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|10, || 13, || 8, || 15, || 8, || 13, || 14, || 13, || 19, || 8,&lt;br /&gt;
|-&lt;br /&gt;
|13, || 13, || 7, || 8,  || 6, || 8 , || 11, || 12, || 8,  || 7.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Find gennemsnittet og standardafvigelsen (SD) på disse tal vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først defineres datasættet som en enkel liste med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [10 13 8 15 8 13 14 13 19 8 13 13 7 8 6 8 11 12 8 7];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter kan gennemsnittet og SD udregnes enten manuelt eller ved brug af &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt; funktionen. F.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = sum(nu)/length(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dermed har man gennemsnittet og datasættets faktiske standardafvigelse. &lt;br /&gt;
&lt;br /&gt;
Husk ikke at forvirre standardafvigelsen SD med standardafvigelsen på gennemsnittet (også kaldt SDOM, for Standard Deviation Of the Mean). Hvis man her vil finde SDOM, skal man dividere med kvadratroden af antallet af punkter,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)/sqrt(length(nu))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Standardafvigelsen på tallene skulle gerne være ca. lig med kvadratroden på deres gennemsnit. Hvor godt passer dette?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Kvadratroden af gennemsnittet udregnes simpelthen med (ved brug af løsningen fra spørgsmål a)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(gn)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne standardafvigelse er faktisk et over-estimat, men den passer ok med den udregnede &amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt; fra ovenfor.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 4 - Systematiske fejl ==&lt;br /&gt;
[[File:uge1tors4fig.png|frame|Et pendul består af en metalkugle der hænger i en snor. Den effektive længde af pendulet er længden af snoren ''plus'' radius af kuglen.]]&lt;br /&gt;
Systematiske fejl kommer nogle gange fra at fysikeren helt uvidende måler det forkerte. Her er et eksempel: En studerende forsøger af måle $g$ ved at bruge et pendul lavet af en stålkugle der hænger i en let snor (se figuren). Han måler fem forskellige længder af pendulet og de tilhørende perioder $T$ som følger:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Længde, $l$ (cm): || 51.2 ||  59.7 ||  68.2 ||  79.7 ||  88.3&lt;br /&gt;
|- &lt;br /&gt;
|Periode, $T$ (s): || 1.448 || 1.566 || 1.669 || 1.804 || 1.896. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
For hver datapar udregner han $g$ som $g = 4 \pi^2 l/T^2$. Han udregner derefter gennemsnittet af de fem værdier, deres SD, og deres SDOM. Ved at antage at alle hans fejl er tilfældige kan han bruge SDOM som sin endelige usikkerhed, og skriver sit resultat på standardformen gennemsnit $\pm$ SDOM. Find hans resultat for $g$ vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at opskrive data i to 1D arrays - et array for &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; og et array for &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Nu kan du udregne &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; vha. den givne funktion, og lave statistik på denne.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dataen læses ind med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = [51.2 59.7 68.2 79.7 88.3];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;T = [1.448 1.566 1.669 1.804 1.896];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og tyngdeaccelerationskoefficienten udregnes ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan man finde gennemsnittet, SD og SDOM af værdierne vha. de indbyggede MATLAB funktioner&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma = std(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Han sammenligner nu sit resultat med den accepterede værdi $g = 979.6 \,\text{cm}/\text{s}^2$ og forfærdes over at se at hans diskrepans (afvigelse fra den accepterede værdi) er tæt på 10 gange større end hans usikkerhed. Bekræft denne sørgelige konklusion.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Diskrebansen findes bare som forskellen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_right = 979.6;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;discrepancy = g_mean - g_right&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Efter at have gennemtjekket alle sine udregninger konkluderer han at han må have overset en systematisk fejl. Han er helt sikker på at der ikke var problemer med målingen af perioden $T$, så han spørger sig selv: Hvor stor skulle en systematisk fejl i længden $l$ være for at grænserne for den totale usikkerhed ''lige præcis'' inkluderer den accepterede værdi $979.6 \,\text{cm}/\text{s}^2$? Vis med MATLAB at svaret er ca. 1 cm.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Prøv at lave en udregning hvor du ændrer din værdi for $l$ en lille smule, og se hvor langt du så skal ændre den for at få en $g$ der passer med den korrekte $g$. Det kan evt. være en god idé at se lidt på &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;-løkker i MATLAB, så programmet kan iterere for dig.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors4fig2.png|frame|Plot der viser afstanden mellem den accepterede $g$ og den yderste SDOM grænse på den fundne $g$ når der er lagt $x$ til $l$.]]&lt;br /&gt;
For at finde hvor stor fejlen skulle være for at den rigtige værdi er inden for SDOM, kan man lave et loop der lægger lidt ekstra til $l$, og så udregner forskellen mellem den fundne $g$ og den rigtige,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 0.1:0.1:1.2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;for i=1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    g_new = 4*pi^2*(l+x(i))./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    discr_new(i) = mean(g_new) + std(g_new)/sqrt(length(g_new)) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den nemmeste måde at se resultatet på er ved at plotte det&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,discr_new,'.b')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan se at den skærer 0 ca. omkring 1 cm (se figuren), hvilket netop var hvad der skulle vises.&lt;br /&gt;
&lt;br /&gt;
Man kunne selvfølgelig også sammenligne den teoretiske værdi for $g$ med gennemsnits-værdien for sin udregnede $g$, hvilket selvfølgelig bare skal gøres ved at erstatte &amp;lt;code&amp;gt;discr_new&amp;lt;/code&amp;gt; udregningen ovenfor med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;discr_new(i) = mean(g_new) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål d ===&lt;br /&gt;
Dette resultat ville betyde at hans længdemålinger har en systematisk fejl på omkring en centimeter - en konklusion som han først afviser som absurd. Mens han stirrer på pendulet kommer han dog i tanke om at 1 cm er ca. radius af kuglen, og at de længder han har målt var  længderne ''af snoren''. Da den korrekte længde af et pendul er afstanden fra fastgørelsespunktet til ''centrum'' af kuglen (se figuren), er hans målinger altså systematisk blevet målt forkert med radius af kuglen. Han bruger derfor en skydelære til at måle kuglens diameter, der viser sig at være 2.00 cm. Lav de nødvendige korrektioner til hans data og udregn hans endelige resultat for $g$ med dennes usikkerhed. &lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at rette den systematiske fejl kan man bare lægge den ene cm til sine $l$-værdier,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = l + 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så udregner man sin $g$-værdi forfra, ligesom det blev gjort før:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 5 - Gauss-fordelingen ==&lt;br /&gt;
Plot Gauss-fordelingen (også kaldt normalfordelingen),&lt;br /&gt;
&lt;br /&gt;
:$ G_{X,\sigma}(x) = \dfrac{1}{\sigma\sqrt{2\pi}} \exp{\left( -\dfrac{(x-X)^2}{2\sigma^2} \right)} , $&lt;br /&gt;
&lt;br /&gt;
i den samme MATLAB figur for de følgende to sæt af parametre: $X=2$, $\sigma=1$, og $X=3$, $\sigma=0.3$. Tilføj en titel, labels på akserne, og en legend til dit plot, og sammenlign de to grafer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors5fig.png|frame|Plot af to forskellige Gauss-funktioner.]]&lt;br /&gt;
Først definerer man sin $x$-akse, f.eks. ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = -2:0.05:6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter giver man sine parametre&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;X1 = 2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma1 = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;X2 = 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma2 = 0.3;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
til sidst kan man så udregne sine funktionsværdier ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = 1/( sigma1*sqrt(2*pi) ) * exp(-(x-X1).^2/(2*sigma1^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = 1/( sigma2*sqrt(2*pi) ) * exp(-(x-X2).^2/(2*sigma2^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også definere en funktion for sin Gauss-fordeling ved definitionen&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;MinGauss = @(x,a,b) 1/( b*sqrt(2*pi) ) * exp(-(x-a).^2/(2*b^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og med denne kan man bare skrive &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = MinGauss(x,X1,sigma1);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = MinGauss(x,X2,sigma2);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Til sidst plotter man de to funktioner sammen. Her kan man bruge at &amp;lt;code&amp;gt;plot&amp;lt;/code&amp;gt; godt kan finde ud af at plotte flere funktioner af gangen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,y1,'r-',x,y2,'b-')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 6 - Binning ==&lt;br /&gt;
I den følgende liste er der 40 målinger $t_1,\ldots,t_{40}$ af tiden det tager en sten at falde fra et vindue til jorden (alle i  hundrededele sekunder):&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|63|| 58|| 74|| 78|| 70|| 74|| 75|| 82|| 68|| 69&lt;br /&gt;
|- &lt;br /&gt;
|76|| 62|| 72|| 88|| 65|| 81|| 79|| 77|| 66|| 76&lt;br /&gt;
|- &lt;br /&gt;
|86|| 72|| 79|| 77|| 60|| 70|| 65|| 69|| 73|| 77&lt;br /&gt;
|- &lt;br /&gt;
|72|| 79|| 65|| 66|| 70|| 74|| 84|| 76|| 80|| 69&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at udregne standardafvigelsen $\sigma_t$ for alle 40 målinger.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først og fremmest skal datasættet lige indlæses,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = [63 58 74 78 70 74 75 82 68 69 76 62 72 88 65 81 79 77 66 76 86 72 79 ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;77 60 70 65 69 73 77 72 79 65 66 70 74 84 76 80 69];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standardafvigelsen findes så simpelt med den indbyggede MATLAB funktion,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Udregn gennemsnittene $\overline t_1,\ldots,\overline t_{10}$ af fire målinger af gangen (f.eks. af de fire målinger i hver af de 10 kolonner, eller af fire nabo-tal ad gangen). Du kan tænke på dataen som om den kom fra 10 eksperimenter, hvor man i hvert eksperiment fandt ''gennemsnittet af fire tidsmålinger''. Givet resultatet i del (a), hvad forventer du så at standardafvigelsen på de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$ er? Udregn den.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at binne med fire målinger af gangen er det nemmest at arbejde med et loop der gør det automatisk for dig. For at bruge et generelt antal punkter at binne med defineres tallet først:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;ncol = 4;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter startes der to tomme arrays op - et til gennemsnittene, og et til standardafvigelserne (&amp;lt;code&amp;gt;zeros(n,m)&amp;lt;/code&amp;gt; laver et $n\times m$ array der indeholder nuller i alle elementer):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sd = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et loop laver udregningerne:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for n = 0:9&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  gn(n+1) = sum(t(n*ncol+1:n*ncol + ncol))/ncol;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  sd(n+1) = std(t(n*ncol+1:n*ncol + ncol));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan så endelig se &amp;lt;code&amp;gt;gn&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;sd&amp;lt;/code&amp;gt; ved simpelthen at printe dem ud via kommandolinjen.&lt;br /&gt;
&lt;br /&gt;
Ud fra del (a) ville man forvente at SD er fordelt omkring den SD man fandt tidligere, og det er også det der sker.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Plot histogrammer for både de 40 individuelle målinger $t_1,\ldots,t_{10}$ og de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$. Brug de samme skalaer og bin størrelser for begge plot, så de kan sammenlignes. Hvad forventer du af de to histogrammer, og ser de faktisk sådan ud?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors6fig.png|frame|De to histogrammer til sammenligning.]]&lt;br /&gt;
For at plotte histogrammer der kan sammenlignes skal man bruge histc, hvor man kan vælge bin-grænser manuelt. Histogrammerne laves ved først at definere grænserne for bins'ene ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nbins = 5;  %antal bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;min = 58;  %position af første bin grænse&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;dist = 6;  %bredde af bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;max = min+nbins*dist;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;edges = min:dist:max;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at kunne plotte bins'ene med en korrekt førsteakse skal man også finde centrum af hvert bin. Dette gøres med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;centers = min+dist*0.5:dist:max+dist*0.5;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter udregnes histogrammerne med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hist40 = histc(t,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hist10 = histc(gn,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og de kan nu plottes med &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt; funktionen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist40,0.5,'y')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist10,0.3,'r')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan tydeligt se at hist10 er mere centreret, som forventet.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_2_taylor.m|opgaver_uge1_2_taylor.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1</id>
		<title>opgaver:Uge1</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1"/>
				<updated>2014-04-20T10:28:33Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse statistik-øvelser er redigerede udgaver af opgaverne 3.4, 3.25, 4.6, 4.28, 5.11 og 5.31 fra R. J. Taylor's ''An Introduction to Error Analysis''. &lt;br /&gt;
&lt;br /&gt;
Det er meningen af så meget som muligt af opgaverne skal laves i MATLAB. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 1 - Tælletal ==&lt;br /&gt;
Når en prøve med radioaktive atomer henfalder, vil antallet af radioaktive atomer falde, og prøvens radioaktivitet vil falde proportionalt med dette. For at undersøge denne effekt måler en fysiker på partiklerne der udsendes fra en radioaktiv prøve i løbet af to timer. Hun tæller antallet af partikler der udsendes i løbet af en 1 minut lang periode med halve timers intervaller, med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Tid gået, $t$ (timer): || 0.0 || 0.5 || 1.0 || 1.5 || 2.0 &lt;br /&gt;
|-&lt;br /&gt;
|Antal tællinger, $\nu$, på 1 minut: || 214 || 134 || 101 || 61 || 54&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at plotte antallet af tællinger imod den tid der er gået. Inkludér errorbars for at vise usikkerheden på tallene. (Negligér usikkerheder i den tid der er gået).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For en hjælp til hvordan man plotter data, se &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) guiden, der ligger på Absalon. Kapitel 4 indeholder en masse plotning generelt. Prøv at slå funktionen &amp;lt;code&amp;gt;errorbar&amp;lt;/code&amp;gt; op i MATLAB hjælpen bagefter.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig1.png|frame|Plottet som det burde se ud efter at have kørt denne kode.]]&lt;br /&gt;
For at plotte datapunkterne med usikkerheder skal data først indlæses. Usikkerhederne er kvadratroden af tælletallet, så&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = 0:0.5:2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [214 134 101 61 54];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_usikk = sqrt(nu);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan data plottes vha. MATLAB funktionen &amp;lt;code&amp;gt;errorbar(x,y,e)&amp;lt;/code&amp;gt;, der plotter $(x,y)$ data, hvor der er usikkerheden $e$ på $y$-dataen. En figur åbnes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
der plottes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;errorbar(t,nu,nu_usikk,'ro')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og til sidst laves der en &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for at blive ved med at plotte oven i det allerede lavede (ellers vil de næste kommandoer overskrive errorbar plottet). Jeg sætter nu også akser, titel og akselabels med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([-0.5 2.5 40 240])&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;title('Opgave 1 - Radioaktivt henfald')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Tid i timer')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Tælletal')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
En teori forudsiger at antallet af udsendte partikler burde falde eksponentielt ved $\nu = \nu_0 \exp{(-rt)}$, hvor der (i dette tilfælde) gælder at $\nu_0 = 200$ og $r = 0.693 \,\text{hr}^{-1}$. Plot denne forventede kurve på din graf oven på din tidligere graf, og kommentér på hvor godt data ser ud til at passe med den teoretiske forudsigelse.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at plotte en funktion skal man først definere sin førsteakse som en vektor, f.eks. &amp;lt;code&amp;gt;x = 0:0.01:1&amp;lt;/code&amp;gt;. Man kan også bruge &amp;lt;code&amp;gt;linspace(x,y,n)&amp;lt;/code&amp;gt; funktionen til at lave en liste fra $x$ til $y$ med $n$ punkter. Antallet af punkter definerer opløsningen på det plot man vil lave.&lt;br /&gt;
&lt;br /&gt;
Herefter kan man udregne sine værdier til andenaksen som sin funktion af førsteakseværdierne, f.eks. &amp;lt;code&amp;gt;y = sin(x)&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2.png|frame|Det endelige plot, der sammenligner data med usikkerheder med en teoretisk linje.]]&lt;br /&gt;
Man definerer linjen for teorien rent numerisk ved at lave en tids-akse som man selv bestemmer hvor detaljeret er, f.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tt = -0.25:0.01:2.25;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så kan man udregne den teoretiske linje ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_0 = 200; &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;r = 0.693;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_exp = nu_0 * exp(-r*tt);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man huskede sin &amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt; tidligere burde man nu bare kunne plotte oven i sit errorbar plot med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,nu_exp,'b:')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Som en sidste krone på værket kan man tilføje en legend med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;legend('Datapunkter','Teori-linje')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prøv at lave plottet igen med forskellige layouts af punkterne og linjen. F.eks. er der de forskellige farver &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; (rød), &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; (grøn), &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; (blå), &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; (gul), &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; (magenta) og &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; (sort); punkttyperne &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (lille prik), &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; (krydser), &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; (store prikker) og &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; (stjerner); og linjetyperne &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; (solid), &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; (prikker) og &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; (stiplet), og selvfølgelig mange flere. Prøv at finde disse options i MATLAB hjælpen under &amp;lt;code&amp;gt;LineSpec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Du kan også lege med egenskaber som &amp;lt;code&amp;gt;MarkerSize&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LineWidth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MarkerEdgeColor&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;MarkerFaceColor&amp;lt;/code&amp;gt; for at gøre linjen og punkterne mere tydelige.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Bonus ===&lt;br /&gt;
I uge 3 skal I lære hvordan man fitter en funktion til datapunkter i MATLAB - så i stedet for at plotte en given kurve vil I skulle plotte den bedst fittede kurve til data. &lt;br /&gt;
&lt;br /&gt;
{{hidden begin|toggle=right|title=Læs mere|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2fit.png|frame|Plottet som før, men nu også med en fit-linje.]]&lt;br /&gt;
Lad os sige at data allerede er indlæst i variablene &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; (med usikkerhed &amp;lt;code&amp;gt;nu_usikk&amp;lt;/code&amp;gt;), som ovenfor. Disse er også allerede plottet som det blev gjort i spørgsmål a. &lt;br /&gt;
&lt;br /&gt;
For at kunne fitte en linje skal man selvfølgelig først definere sin fitte-kurve, der i dette tilfælde vil være $\nu = \nu_0 \exp{(-rt)}$, hvor $\nu_0$ og $r$ nu er fitte-parametre. En funktion kan defineres på mange måder i MATLAB, men når man fitter med simple funktionsudtryk i MATLAB er det nemmest simpelthen bare at fodre fitte-rutinen med den direkte.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;cfun = fit(t',nu','a*exp(-b*x)')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;t'&amp;lt;/code&amp;gt; betyder den transponerede af &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;. Funktionen &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; kræver nemlig søjlevektorer som data, ikke rækkevektorer, som både &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; er defineret som. Objektet &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; indeholder nu information om fittet, og man kan plotte kurven med de bedste værdier af &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,cfun(tt),'g-')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
man kan også få parametrene ud ved at kalde variablene &amp;lt;code&amp;gt;cfun.a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;cfun.b&amp;lt;/code&amp;gt;. Det er også muligt at gå dybere ned i &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; objektet, men dette skal ikke uddybes her.&lt;br /&gt;
&lt;br /&gt;
Bemærk også at ovenstående ikke fodrer MATLAB med et start-gæt på de to fitte-parametre. Dette bør man normalt gøre, da programmet ellers vælger tilfældige startpunkter, og her ikke altid vil konvergere. Man kan gøre det ved at bruge &amp;lt;code&amp;gt;StartPoint&amp;lt;/code&amp;gt; option'en, og dette vil vi komme ind på senere.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 2 - Usikkerheden af et potensudtryk ==&lt;br /&gt;
Fra Barlow's regel (4.10) om usikkerheder af funktionsudtryk, ved vi at et $q = x^2$ har en relativ usikkerhed der er dobbelt så stor som den relative usikkerhed i $x$;&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = 2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Overvej nu det følgende (forkerte) argument: Vi kan tænke på $x^2$ som $x$ gange $x$, så&lt;br /&gt;
&lt;br /&gt;
:$ q = x \times x; $&lt;br /&gt;
&lt;br /&gt;
derfor vil der ifølge Barlow's regel (4.14) gælde at&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = \sqrt{ \left( \dfrac{\sigma_x}{x} \right)^2 + \left( \dfrac{\sigma_x}{x} \right)^2 }&lt;br /&gt;
                     = \sqrt2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Denne konklusion er forkert. Forklar hvorfor.&lt;br /&gt;
&lt;br /&gt;
Bonus: Prøv at undersøge dette i MATLAB ved at sammenligne den relative usikkerhed (SD divideret med gennemsnitsværdien) for en række af tilfældige tal med den relative usikkerhed på samme række af tal kvadreret. Du kan evt. læse i MATLAB-hjælpen hvad funktionen &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; gør. &lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Se på hvad antagelserne for at formel (4.14) gælder faktisk er - passer dette med hvad der arbejdes med i denne opgave?&lt;br /&gt;
&lt;br /&gt;
For at se på det i MATLAB kan man generere en række tilfældige tal vha. &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; funktionen. Slå den op i MATLAB hjælpen og se hvad den kan.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Konklusionen i den fejlagtige udledning er forkert fordi man har brugt udtrykket i formel (4.14) uden at overholde dennes antagelser - nemlig at de variable man ganger sammen er uafhængige. Og nu er $x$ jo fuldkommen afhængig af sig selv - hvorfor konklusionen altså kun kan være forkert.&lt;br /&gt;
&lt;br /&gt;
For at se på dette i MATLAB kan man starte med at lave en liste med normalfordelte tal&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 10 + randn(1,500);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at der lægges 10 til, da vi gerne vil dividere med gennemsnittet senere (og at dividere med nul er jo ikke så godt!).&lt;br /&gt;
&lt;br /&gt;
Man kan nu helt manuelt se på den relative usikkerhed på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i anden potens, ved at bruge de indbyggede MATLAB funktioner for standardafvigelse og gennemsnit, &amp;lt;code&amp;gt;std&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x.^2)/mean(x.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man finder at nummer to usikkerhed ovenfor ligner at man ganger den første med 2, ikke med $\sqrt{2}$, ved at sammenligne&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;2*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(2)*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og dermed er det altså også rent numerisk vist at den naive fremgangsmåde ikke er sand.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 3 - Flere tælletal ==&lt;br /&gt;
I Barlow kap. 3.3.1 kan I læse at i et tælleeksperiment er usikkerheden på en tælling givet af &amp;quot;kvadratrods-reglen&amp;quot; til at være kvadratroden af tallet. Denne regel kan gøres mere præcis med følgende udsagn: Hvis man tager adskillige tællinger&lt;br /&gt;
&lt;br /&gt;
:$ \nu_1, \nu_2, \ldots, \nu_N $&lt;br /&gt;
&lt;br /&gt;
af antallet $\nu$ af tilfældige hændelser der sker inden for tidsrummet $T$, så gælder der: (1) det bedste estimat for det sande gennemsnit af hændelser inden for tidsrummet $T$ er gennemsnittet $\overline\nu = \sum \nu_i/N$ af målingerne, og (2) ''standardafvigelsen'' (også kaldt SD, for Standard Deviation) af de observerede tal er approksimativt lig med ''kvadratroden'' af dette samme bedste estimat; altså, usikkerheden i hver måling er $\sqrt{\overline\nu}$. I specialtilfældet hvor der kun måles én gang, hvor man får et antal tællinger $\nu$, er det bedste estimat $\nu$, mens usikkerheden er kvadratroden $\sqrt\nu$. &lt;br /&gt;
&lt;br /&gt;
En fysiker bruger en Geiger-tæller til at måle antallet af kosmiske partikler der kommer til hans laboratorie i givne to-sekunders intervaller.  Han tæller dette tal 20 gange med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|10, || 13, || 8, || 15, || 8, || 13, || 14, || 13, || 19, || 8,&lt;br /&gt;
|-&lt;br /&gt;
|13, || 13, || 7, || 8,  || 6, || 8 , || 11, || 12, || 8,  || 7.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Find gennemsnittet og standardafvigelsen (SD) på disse tal vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først defineres datasættet som en enkel liste med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [10 13 8 15 8 13 14 13 19 8 13 13 7 8 6 8 11 12 8 7];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter kan gennemsnittet og SD udregnes enten manuelt eller ved brug af &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt; funktionen. F.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = sum(nu)/length(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dermed har man gennemsnittet og datasættets faktiske standardafvigelse. &lt;br /&gt;
&lt;br /&gt;
Husk ikke at forvirre standardafvigelsen SD med standardafvigelsen på gennemsnittet (også kaldt SDOM, for Standard Deviation Of the Mean). Hvis man her vil finde SDOM, skal man dividere med kvadratroden af antallet af punkter,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)/sqrt(length(nu))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Standardafvigelsen på tallene skulle gerne være ca. lig med kvadratroden på deres gennemsnit. Hvor godt passer dette?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Kvadratroden af gennemsnittet udregnes simpelthen med (ved brug af løsningen fra spørgsmål a)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(gn)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne standardafvigelse er faktisk et over-estimat, men den passer ok med den udregnede &amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt; fra ovenfor.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 4 - Systematiske fejl ==&lt;br /&gt;
[[File:uge1tors4fig.png|frame|Et pendul består af en metalkugle der hænger i en snor. Den effektive længde af pendulet er længden af snoren ''plus'' radius af kuglen.]]&lt;br /&gt;
Systematiske fejl kommer nogle gange fra at fysikeren helt uvidende måler det forkerte. Her er et eksempel: En studerende forsøger af måle $g$ ved at bruge et pendul lavet af en stålkugle der hænger i en let snor (se figuren). Han måler fem forskellige længder af pendulet og de tilhørende perioder $T$ som følger:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Længde, $l$ (cm): || 51.2 ||  59.7 ||  68.2 ||  79.7 ||  88.3&lt;br /&gt;
|- &lt;br /&gt;
|Periode, $T$ (s): || 1.448 || 1.566 || 1.669 || 1.804 || 1.896. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
For hver datapar udregner han $g$ som $g = 4 \pi^2 l/T^2$. Han udregner derefter gennemsnittet af de fem værdier, deres SD, og deres SDOM. Ved at antage at alle hans fejl er tilfældige kan han bruge SDOM som sin endelige usikkerhed, og skriver sit resultat på standardformen gennemsnit $\pm$ SDOM. Find hans resultat for $g$ vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at opskrive data i to 1D arrays - et array for &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; og et array for &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Nu kan du udregne &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; vha. den givne funktion, og lave statistik på denne.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dataen læses ind med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = [51.2 59.7 68.2 79.7 88.3];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;T = [1.448 1.566 1.669 1.804 1.896];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og tyngdeaccelerationskoefficienten udregnes ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan man finde gennemsnittet, SD og SDOM af værdierne vha. de indbyggede MATLAB funktioner&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma = std(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Han sammenligner nu sit resultat med den accepterede værdi $g = 979.6 \,\text{cm}/\text{s}^2$ og forfærdes over at se at hans diskrepans er tæt på 10 gange større end hans usikkerhed. Bekræft denne sørgelige konklusion.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Diskrebansen findes bare som forskellen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_right = 979.6;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;discrepancy = g_mean - g_right&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Efter at have gennemtjekket alle sine udregninger konkluderer han at han må have overset en systematisk fejl. Han er helt sikker på at der ikke var problemer med målingen af perioden $T$, så han spørger sig selv: Hvor stor skulle en systematisk fejl i længden $l$ være for at grænserne for den totale usikkerhed ''lige præcis'' inkluderer den accepterede værdi $979.6 \,\text{cm}/\text{s}^2$? Vis med MATLAB at svaret er ca. 1 cm.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Prøv at lave en udregning hvor du ændrer din værdi for $l$ en lille smule, og se hvor langt du så skal ændre den for at få en $g$ der passer med den korrekte $g$. Det kan evt. være en god idé at se lidt på &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;-løkker i MATLAB, så programmet kan iterere for dig.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors4fig2.png|frame|Plot der viser afstanden mellem den accepterede $g$ og den yderste SDOM grænse på den fundne $g$ når der er lagt $x$ til $l$.]]&lt;br /&gt;
For at finde hvor stor fejlen skulle være for at den rigtige værdi er inden for SDOM, kan man lave et loop der lægger lidt ekstra til $l$, og så udregner forskellen mellem den fundne $g$ og den rigtige,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 0.1:0.1:1.2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;for i=1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    g_new = 4*pi^2*(l+x(i))./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    discr_new(i) = mean(g_new) + std(g_new)/sqrt(length(g_new)) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den nemmeste måde at se resultatet på er ved at plotte det&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,discr_new,'.b')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan se at den skærer 0 ca. omkring 1 cm (se figuren), hvilket netop var hvad der skulle vises.&lt;br /&gt;
&lt;br /&gt;
Man kunne selvfølgelig også sammenligne den teoretiske værdi for $g$ med gennemsnits-værdien for sin udregnede $g$, hvilket selvfølgelig bare skal gøres ved at erstatte &amp;lt;code&amp;gt;discr_new&amp;lt;/code&amp;gt; udregningen ovenfor med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;discr_new(i) = mean(g_new) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål d ===&lt;br /&gt;
Dette resultat ville betyde at hans længdemålinger har en systematisk fejl på omkring en centimeter - en konklusion som han først afviser som absurd. Mens han stirrer på pendulet kommer han dog i tanke om at 1 cm er ca. radius af kuglen, og at de længder han har målt var  længderne ''af snoren''. Da den korrekte længde af et pendul er afstanden fra fastgørelsespunktet til ''centrum'' af kuglen (se figuren), er hans målinger altså systematisk blevet målt forkert med radius af kuglen. Han bruger derfor en skydelære til at måle kuglens diameter, der viser sig at være 2.00 cm. Lav de nødvendige korrektioner til hans data og udregn hans endelige resultat for $g$ med dennes usikkerhed. &lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at rette den systematiske fejl kan man bare lægge den ene cm til sine $l$-værdier,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = l + 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så udregner man sin $g$-værdi forfra, ligesom det blev gjort før:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 5 - Gauss-fordelingen ==&lt;br /&gt;
Plot Gauss-fordelingen (også kaldt normalfordelingen),&lt;br /&gt;
&lt;br /&gt;
:$ G_{X,\sigma}(x) = \dfrac{1}{\sigma\sqrt{2\pi}} \exp{\left( -\dfrac{(x-X)^2}{2\sigma^2} \right)} , $&lt;br /&gt;
&lt;br /&gt;
i den samme MATLAB figur for de følgende to sæt af parametre: $X=2$, $\sigma=1$, og $X=3$, $\sigma=0.3$. Tilføj en titel, labels på akserne, og en legend til dit plot, og sammenlign de to grafer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors5fig.png|frame|Plot af to forskellige Gauss-funktioner.]]&lt;br /&gt;
Først definerer man sin $x$-akse, f.eks. ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = -2:0.05:6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter giver man sine parametre&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;X1 = 2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma1 = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;X2 = 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma2 = 0.3;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
til sidst kan man så udregne sine funktionsværdier ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = 1/( sigma1*sqrt(2*pi) ) * exp(-(x-X1).^2/(2*sigma1^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = 1/( sigma2*sqrt(2*pi) ) * exp(-(x-X2).^2/(2*sigma2^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også definere en funktion for sin Gauss-fordeling ved definitionen&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;MinGauss = @(x,a,b) 1/( b*sqrt(2*pi) ) * exp(-(x-a).^2/(2*b^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og med denne kan man bare skrive &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = MinGauss(x,X1,sigma1);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = MinGauss(x,X2,sigma2);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Til sidst plotter man de to funktioner sammen. Her kan man bruge at &amp;lt;code&amp;gt;plot&amp;lt;/code&amp;gt; godt kan finde ud af at plotte flere funktioner af gangen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,y1,'r-',x,y2,'b-')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 6 - Binning ==&lt;br /&gt;
I den følgende liste er der 40 målinger $t_1,\ldots,t_{40}$ af tiden det tager en sten at falde fra et vindue til jorden (alle i  hundrededele sekunder):&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|63|| 58|| 74|| 78|| 70|| 74|| 75|| 82|| 68|| 69&lt;br /&gt;
|- &lt;br /&gt;
|76|| 62|| 72|| 88|| 65|| 81|| 79|| 77|| 66|| 76&lt;br /&gt;
|- &lt;br /&gt;
|86|| 72|| 79|| 77|| 60|| 70|| 65|| 69|| 73|| 77&lt;br /&gt;
|- &lt;br /&gt;
|72|| 79|| 65|| 66|| 70|| 74|| 84|| 76|| 80|| 69&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at udregne standardafvigelsen $\sigma_t$ for alle 40 målinger.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først og fremmest skal datasættet lige indlæses,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = [63 58 74 78 70 74 75 82 68 69 76 62 72 88 65 81 79 77 66 76 86 72 79 ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;77 60 70 65 69 73 77 72 79 65 66 70 74 84 76 80 69];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standardafvigelsen findes så simpelt med den indbyggede MATLAB funktion,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Udregn gennemsnittene $\overline t_1,\ldots,\overline t_{10}$ af fire målinger af gangen (f.eks. af de fire målinger i hver af de 10 kolonner, eller af fire nabo-tal ad gangen). Du kan tænke på dataen som om den kom fra 10 eksperimenter, hvor man i hvert eksperiment fandt ''gennemsnittet af fire tidsmålinger''. Givet resultatet i del (a), hvad forventer du så at standardafvigelsen på de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$ er? Udregn den.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at binne med fire målinger af gangen er det nemmest at arbejde med et loop der gør det automatisk for dig. For at bruge et generelt antal punkter at binne med defineres tallet først:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;ncol = 4;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter startes der to tomme arrays op - et til gennemsnittene, og et til standardafvigelserne (&amp;lt;code&amp;gt;zeros(n,m)&amp;lt;/code&amp;gt; laver et $n\times m$ array der indeholder nuller i alle elementer):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sd = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et loop laver udregningerne:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for n = 0:9&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  gn(n+1) = sum(t(n*ncol+1:n*ncol + ncol))/ncol;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  sd(n+1) = std(t(n*ncol+1:n*ncol + ncol));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan så endelig se &amp;lt;code&amp;gt;gn&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;sd&amp;lt;/code&amp;gt; ved simpelthen at printe dem ud via kommandolinjen.&lt;br /&gt;
&lt;br /&gt;
Ud fra del (a) ville man forvente at SD er fordelt omkring den SD man fandt tidligere, og det er også det der sker.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Plot histogrammer for både de 40 individuelle målinger $t_1,\ldots,t_{10}$ og de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$. Brug de samme skalaer og bin størrelser for begge plot, så de kan sammenlignes. Hvad forventer du af de to histogrammer, og ser de faktisk sådan ud?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors6fig.png|frame|De to histogrammer til sammenligning.]]&lt;br /&gt;
For at plotte histogrammer der kan sammenlignes skal man bruge histc, hvor man kan vælge bin-grænser manuelt. Histogrammerne laves ved først at definere grænserne for bins'ene ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nbins = 5;  %antal bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;min = 58;  %position af første bin grænse&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;dist = 6;  %bredde af bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;max = min+nbins*dist;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;edges = min:dist:max;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at kunne plotte bins'ene med en korrekt førsteakse skal man også finde centrum af hvert bin. Dette gøres med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;centers = min+dist*0.5:dist:max+dist*0.5;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter udregnes histogrammerne med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hist40 = histc(t,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hist10 = histc(gn,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og de kan nu plottes med &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt; funktionen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist40,0.5,'y')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist10,0.3,'r')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan tydeligt se at hist10 er mere centreret, som forventet.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_2_taylor.m|opgaver_uge1_2_taylor.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T09:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB og [[opgaver:uge1|tirsdags- eller torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1torsdag</id>
		<title>opgaver:Uge1torsdag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1torsdag"/>
				<updated>2014-04-20T09:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge1torsdag to opgaver:Uge1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[opgaver:Uge1]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1</id>
		<title>opgaver:Uge1</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1"/>
				<updated>2014-04-20T09:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge1torsdag to opgaver:Uge1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse statistik-øvelser er redigerede udgaver af opgaverne 3.4, 3.25, 4.6, 4.28, 5.11 og 5.31 fra R. J. Taylor's ''An Introduction to Error Analysis''. &lt;br /&gt;
&lt;br /&gt;
Det er meningen af så meget som muligt af opgaverne skal laves i MATLAB. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 1 - Tælletal ==&lt;br /&gt;
Når en prøve med radioaktive atomer henfalder, vil antallet af radioaktive atomer falde, og prøvens radioaktivitet vil falde proportionalt med dette. For at undersøge denne effekt måler en fysiker på partiklerne der udsendes fra en radioaktiv prøve i løbet af to timer. Hun tæller antallet af partikler der udsendes i løbet af en 1 minut lang periode med halve timers intervaller, med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Tid gået, $t$ (timer): || 0.0 || 0.5 || 1.0 || 1.5 || 2.0 &lt;br /&gt;
|-&lt;br /&gt;
|Antal tællinger, $\nu$, på 1 minut: || 214 || 134 || 101 || 61 || 54&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at plotte antallet af tællinger imod den tid der er gået. Inkludér errorbars for at vise usikkerheden på tallene. (Negligér usikkerheder i den tid der er gået).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For en hjælp til hvordan man plotter data, se ''Getting Started with MATLAB'' guiden, der ligger på Absalon. Kapitel 4 indeholder en masse plotning generelt. Prøv at slå funktionen &amp;lt;code&amp;gt;errorbar&amp;lt;/code&amp;gt; op i MATLAB hjælpen bagefter.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig1.png|frame|Plottet som det burde se ud efter at have kørt denne kode.]]&lt;br /&gt;
For at plotte datapunkterne med usikkerheder skal data først indlæses. Usikkerhederne er kvadratroden af tælletallet, så&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = 0:0.5:2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [214 134 101 61 54];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_usikk = sqrt(nu);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan data plottes vha. MATLAB funktionen &amp;lt;code&amp;gt;errorbar(x,y,e)&amp;lt;/code&amp;gt;, der plotter $(x,y)$ data, hvor der er usikkerheden $e$ på $y$-dataen. En figur åbnes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
der plottes med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;errorbar(t,nu,nu_usikk,'ro')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og til sidst laves der en &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for at blive ved med at plotte oven i det allerede lavede (ellers vil de næste kommandoer overskrive errorbar plottet). Jeg sætter nu også akser, titel og akselabels med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;axis([-0.5 2.5 40 240])&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;title('Opgave 1 - Radioaktivt henfald')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;xlabel('Tid i timer')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ylabel('Tælletal')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
En teori forudsiger at antallet af udsendte partikler burde falde eksponentielt ved $\nu = \nu_0 \exp{(-rt)}$, hvor der (i dette tilfælde) gælder at $\nu_0 = 200$ og $r = 0.693 \,\text{hr}^{-1}$. Plot denne forventede kurve på din graf oven på din tidligere graf, og kommentér på hvor godt data ser ud til at passe med den teoretiske forudsigelse.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at plotte en funktion skal man først definere sin førsteakse som en vektor, f.eks. &amp;lt;code&amp;gt;x = 0:0.01:1&amp;lt;/code&amp;gt;. Man kan også bruge &amp;lt;code&amp;gt;linspace(x,y,n)&amp;lt;/code&amp;gt; funktionen til at lave en liste fra $x$ til $y$ med $n$ punkter. Antallet af punkter definerer opløsningen på det plot man vil lave.&lt;br /&gt;
&lt;br /&gt;
Herefter kan man udregne sine værdier til andenaksen som sin funktion af førsteakseværdierne, f.eks. &amp;lt;code&amp;gt;y = sin(x)&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2.png|frame|Det endelige plot, der sammenligner data med usikkerheder med en teoretisk linie.]]&lt;br /&gt;
Man definerer linien for teorien rent numerisk ved at lave en tids-akse som man selv bestemmer hvor detaljeret er, f.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;tt = -0.25:0.01:2.25;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så kan man udregne den teoretiske linie ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_0 = 200; &amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;r = 0.693;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;nu_exp = nu_0 * exp(-r*tt);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hvis man huskede sin &amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt; tidligere burde man nu bare kunne plotte oven i sit errorbar plot med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,nu_exp,'b:')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Som en sidste krone på værket kan man tilføje en legend med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;legend('Datapunkter','Teori-linie')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prøv at lave plottet igen med forskellige layouts af punkterne og linien. F.eks. er der de forskellige farver &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; (rød), &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; (grøn), &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; (blå), &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; (gul), &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; (magenta) og &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; (sort); punkttyperne &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (lille prik), &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; (krydser), &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; (store prikker) og &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; (stjerner); og linietyperne &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; (solid), &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; (prikker) og &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; (stiplet), og selvfølgelig mange flere. Prøv at finde disse options i MATLAB hjælpen under &amp;lt;code&amp;gt;LineSpec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Du kan også lege med egenskaber som &amp;lt;code&amp;gt;MarkerSize&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LineWidth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MarkerEdgeColor&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;MarkerFaceColor&amp;lt;/code&amp;gt; for at gøre linien og punkterne mere tydelige.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Bonus ===&lt;br /&gt;
I uge 3 skal I lære hvordan man fitter en funktion til datapunkter i MATLAB - så i stedet for at plotte en given kurve vil I skulle plotte den bedst fittede kurve til data. &lt;br /&gt;
&lt;br /&gt;
{{hidden begin|toggle=right|title=Læs mere|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors1fig2fit.png|frame|Plottet som før, men nu også med en fit-linie.]]&lt;br /&gt;
Lad os sige at data allerede er indlæst i variablene &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; (med usikkerhed &amp;lt;code&amp;gt;nu_usikk&amp;lt;/code&amp;gt;), som ovenfor. Disse er også allerede plottet som det blev gjort i spørgsmål a. &lt;br /&gt;
&lt;br /&gt;
For at kunne fitte en linie skal man selvfølgelig først definere sin fitte-kurve, der i dette tilfælde vil være $\nu = \nu_0 \exp{(-rt)}$, hvor $\nu_0$ og $r$ nu er fitte-parametre. En funktion kan defineres på mange måder i MATLAB, men når man fitter med simple funktionsudtryk i MATLAB er det nemmest simpelthen bare at fodre fitte-rutinen med den direkte.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;cfun = fit(t',nu','a*exp(-b*x)')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;t'&amp;lt;/code&amp;gt; betyder den transponerede af &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;. Funktionen &amp;lt;code&amp;gt;fit&amp;lt;/code&amp;gt; kræver nemlig søjlevektorer som data, ikke rækkevektorer, som både &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;nu&amp;lt;/code&amp;gt; er defineret som. Objektet &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; indeholder nu information om fittet, og man kan plotte kurven med de bedste værdier af &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(tt,cfun(tt),'g-')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
man kan også få parametrene ud ved at kalde variablene &amp;lt;code&amp;gt;cfun.a&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;cfun.b&amp;lt;/code&amp;gt;. Det er også muligt at gå dybere ned i &amp;lt;code&amp;gt;cfun&amp;lt;/code&amp;gt; objektet, men dette skal ikke uddybes her.&lt;br /&gt;
&lt;br /&gt;
Bemærk også at ovenstående ikke fodrer MATLAB med et start-gæt på de to fitte-parametre. Dette bør man normalt gøre, da programmet ellers vælger tilfældige startpunkter, og her ikke altid vil konvergere. Man kan gøre det ved at bruge &amp;lt;code&amp;gt;StartPoint&amp;lt;/code&amp;gt; option'en, og dette vil vi komme ind på senere.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 2 - Usikkerheden af et potensudtryk ==&lt;br /&gt;
Fra Barlow's regel (4.10) om usikkerheder af funktionsudtryk, ved vi at et $q = x^2$ har en relativ usikkerhed der er dobbelt så stor som den relative usikkerhed i $x$;&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = 2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Overvej nu det følgende (forkerte) argument: Vi kan tænke på $x^2$ som $x$ gange $x$, så&lt;br /&gt;
&lt;br /&gt;
:$ q = x \times x; $&lt;br /&gt;
&lt;br /&gt;
derfor vil der ifølge Barlow's regel (4.14) gælde at&lt;br /&gt;
&lt;br /&gt;
:$ \dfrac{\sigma_q}{q} = \sqrt{ \left( \dfrac{\sigma_x}{x} \right)^2 + \left( \dfrac{\sigma_x}{x} \right)^2 }&lt;br /&gt;
                     = \sqrt2 \dfrac{\sigma_x}{x} . $&lt;br /&gt;
&lt;br /&gt;
Denne konklusion er forkert. Forklar hvorfor.&lt;br /&gt;
&lt;br /&gt;
Bonus: Prøv at undersøge dette i MATLAB ved at sammenligne den relative usikkerhed (SD divideret med gennemsnitsværdien) for en række af tilfældige tal med den relative usikkerhed på samme række af tal kvadreret. Du kan evt. læse i MATLAB-hjælpen hvad funktionen &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; gør. &lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Se på hvad antagelserne for at formel (4.14) gælder faktisk er - passer dette med hvad der arbejdes med i denne opgave?&lt;br /&gt;
&lt;br /&gt;
For at se på det i MATLAB kan man generere en række tilfældige tal vha. &amp;lt;code&amp;gt;randn&amp;lt;/code&amp;gt; funktionen. Slå den op i MATLAB hjælpen og se hvad den kan.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Konklusionen i den fejlagtige udledning er forkert fordi man har brugt udtrykket i formel (4.14) uden at overholde dennes antagelser - nemlig at de variable man ganger sammen er uafhængige. Og nu er $x$ jo fuldkommen afhængig af sig selv - hvorfor konklusionen altså kun kan være forkert.&lt;br /&gt;
&lt;br /&gt;
For at se på dette i MATLAB kan man starte med at lave en liste med normalfordelte tal&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 10 + randn(1,500);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at der lægges 10 til, da vi gerne vil dividere med gennemsnittet senere (og at dividere med nul er jo ikke så godt!).&lt;br /&gt;
&lt;br /&gt;
Man kan nu helt manuelt se på den relative usikkerhed på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og på &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i anden potens, ved at bruge de indbyggede MATLAB funktioner for standardafvigelse og gennemsnit, &amp;lt;code&amp;gt;std&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(x.^2)/mean(x.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man finder at nummer to usikkerhed ovenfor ligner at man ganger den første med 2, ikke med $\sqrt{2}$, ved at sammenligne&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;2*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(2)*std(x)/mean(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og dermed er det altså også rent numerisk vist at den naive fremgangsmåde ikke er sand.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 3 - Flere tælletal ==&lt;br /&gt;
I Barlow kap. 3.3.1 kan I læse at i et tælleeksperiment er usikkerheden på en tælling givet af &amp;quot;kvadratrods-reglen&amp;quot; til at være kvadratroden af tallet. Denne regel kan gøres mere præcis med følgende udsagn: Hvis man tager adskillige tællinger&lt;br /&gt;
&lt;br /&gt;
:$ \nu_1, \nu_2, \ldots, \nu_N $&lt;br /&gt;
&lt;br /&gt;
af antallet $\nu$ af tilfældige hændelser der sker inden for tidsrummet $T$, så gælder der: (1) det bedste estimat for det sande gennemsnit af hændelser inden for tidsrummet $T$ er gennemsnittet $\overline\nu = \sum \nu_i/N$ af målingerne, og (2) ''standardafvigelsen'' (også kaldt SD, for Standard Deviation) af de observerede tal er approksimativt lig med ''kvadratroden'' af dette samme bedste estimat; altså, usikkerheden i hver måling er $\sqrt{\overline\nu}$. I specialtilfældet hvor der kun måles én gang, hvor man får et antal tællinger $\nu$, er det bedste estimat $\nu$, mens usikkerheden er kvadratroden $\sqrt\nu$. &lt;br /&gt;
&lt;br /&gt;
En fysiker bruger en Geiger-tæller til at måle antallet af kosmiske partikler der kommer til hans laboratorie i givne to-sekunders intervaller.  Han tæller dette tal 20 gange med følgende resultater:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|10, || 13, || 8, || 15, || 8, || 13, || 14, || 13, || 19, || 8,&lt;br /&gt;
|-&lt;br /&gt;
|13, || 13, || 7, || 8,  || 6, || 8 , || 11, || 12, || 8,  || 7.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Find gennemsnittet og standardafvigelsen (SD) på disse tal vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først defineres datasættet som en enkel liste med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nu = [10 13 8 15 8 13 14 13 19 8 13 13 7 8 6 8 11 12 8 7];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter kan gennemsnittet og SD udregnes enten manuelt eller ved brug af &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt; funktionen. F.eks.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = sum(nu)/length(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dermed har man gennemsnittet og datasættets faktiske standardafvigelse. &lt;br /&gt;
&lt;br /&gt;
Husk ikke at forvirre standardafvigelsen SD med standardafvigelsen på gennemsnittet (også kaldt SDOM, for Standard Deviation Of the Mean). Hvis man her vil finde SDOM, skal man dividere med kvadratroden af antallet af punkter,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(nu)/sqrt(length(nu))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Standardafvigelsen på tallene skulle gerne være ca. lig med kvadratroden på deres gennemsnit. Hvor godt passer dette?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Kvadratroden af gennemsnittet udregnes simpelthen med (ved brug af løsningen fra spørgsmål a)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(gn)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Denne standardafvigelse er faktisk et over-estimat, men den passer ok med den udregnede &amp;lt;code&amp;gt;std(nu)&amp;lt;/code&amp;gt; fra ovenfor.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 4 - Systematiske fejl ==&lt;br /&gt;
[[File:uge1tors4fig.png|frame|Et pendul består af en metalkugle der hænger i en snor. Den effektive længde af pendulet er længden af snoren ''plus'' radius af kuglen.]]&lt;br /&gt;
Systematiske fejl kommer nogle gange fra at fysikeren helt uvidende måler det forkerte. Her er et eksempel: En studerende forsøger af måle $g$ ved at bruge et pendul lavet af en stålkugle der hænger i en let snor (se figuren). Han måler fem forskellige længder af pendulet og de tilhørende perioder $T$ som følger:&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|Længde, $l$ (cm): || 51.2 ||  59.7 ||  68.2 ||  79.7 ||  88.3&lt;br /&gt;
|- &lt;br /&gt;
|Periode, $T$ (s): || 1.448 || 1.566 || 1.669 || 1.804 || 1.896. &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
For hver datapar udregner han $g$ som $g = 4 \pi^2 l/T^2$. Han udregner derefter gennemsnittet af de fem værdier, deres SD, og deres SDOM. Ved at antage at alle hans fejl er tilfældige kan han bruge SDOM som sin endelige usikkerhed, og skriver sit resultat på standardformen gennemsnit $\pm$ SDOM. Find hans resultat for $g$ vha. MATLAB.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at opskrive data i to 1D arrays - et array for &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt; og et array for &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;. Nu kan du udregne &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; vha. den givne funktion, og lave statistik på denne.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dataen læses ind med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = [51.2 59.7 68.2 79.7 88.3];&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;T = [1.448 1.566 1.669 1.804 1.896];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og tyngdeaccelerationskoefficienten udregnes ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter kan man finde gennemsnittet, SD og SDOM af værdierne vha. de indbyggede MATLAB funktioner&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma = std(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Han sammenligner nu sit resultat med den accepterede værdi $g = 979.6 \,\text{cm}/\text{s}^2$ og forfærdes over at se at hans diskrepans er tæt på 10 gange større end hans usikkerhed. Bekræft denne sørgelige konklusion.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Diskrebansen findes bare som forskellen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g_right = 979.6;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;discrepancy = g_mean - g_right&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Efter at have gennemtjekket alle sine udregninger konkluderer han at han må have overset en systematisk fejl. Han er helt sikker på at der ikke var problemer med målingen af perioden $T$, så han spørger sig selv: Hvor stor skulle en systematisk fejl i længden $l$ være for at grænserne for den totale usikkerhed ''lige præcis'' inkluderer den accepterede værdi $979.6 \,\text{cm}/\text{s}^2$? Vis med MATLAB at svaret er ca. 1 cm.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Prøv at lave en udregning hvor du ændrer din værdi for $l$ en lille smule, og se hvor langt du så skal ændre den for at få en $g$ der passer med den korrekte $g$. Det kan evt. være en god idé at se lidt på &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;-løkker i MATLAB, så programmet kan iterere for dig.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors4fig2.png|frame|Plot der viser afstanden mellem den accepterede $g$ og den yderste SDOM grænse på den fundne $g$ når der er lagt $x$ til $l$.]]&lt;br /&gt;
For at finde hvor stor fejlen skulle være for at den rigtige værdi er inden for SDOM, kan man lave et loop der lægger lidt ekstra til $l$, og så udregner forskellen mellem den fundne $g$ og den rigtige,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 0.1:0.1:1.2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;for i=1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    g_new = 4*pi^2*(l+x(i))./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    discr_new(i) = mean(g_new) + std(g_new)/sqrt(length(g_new)) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den nemmeste måde at se resultatet på er ved at plotte det&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,discr_new,'.b')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan se at den skærer 0 ca. omkring 1 cm (se figuren), hvilket netop var hvad der skulle vises.&lt;br /&gt;
&lt;br /&gt;
Man kunne selvfølgelig også sammenligne den teoretiske værdi for $g$ med gennemsnits-værdien for sin udregnede $g$, hvilket selvfølgelig bare skal gøres ved at erstatte &amp;lt;code&amp;gt;discr_new&amp;lt;/code&amp;gt; udregningen ovenfor med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;discr_new(i) = mean(g_new) - g_right;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål d ===&lt;br /&gt;
Dette resultat ville betyde at hans længdemålinger har en systematisk fejl på omkring en centimeter - en konklusion som han først afviser som absurd. Mens han stirrer på pendulet kommer han dog i tanke om at 1 cm er ca. radius af kuglen, og at de længder han har målt var  længderne ''af snoren''. Da den korrekte længde af et pendul er afstanden fra fastgørelsespunktet til ''centrum'' af kuglen (se figuren), er hans målinger altså systematisk blevet målt forkert med radius af kuglen. Han bruger derfor en skydelære til at måle kuglens diameter, der viser sig at være 2.00 cm. Lav de nødvendige korrektioner til hans data og udregn hans endelige resultat for $g$ med dennes usikkerhed. &lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at rette den systematiske fejl kan man bare lægge den ene cm til sine $l$-værdier,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;l = l + 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og så udregner man sin $g$-værdi forfra, ligesom det blev gjort før:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;g = 4*pi^2*l./T.^2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;g_mean = mean(g)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma_mean = std(g)/sqrt(length(g))&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 5 - Gauss-fordelingen ==&lt;br /&gt;
Plot Gauss-fordelingen (også kaldt normalfordelingen),&lt;br /&gt;
&lt;br /&gt;
:$ G_{X,\sigma}(x) = \dfrac{1}{\sigma\sqrt{2\pi}} \exp{\left( -\dfrac{(x-X)^2}{2\sigma^2} \right)} , $&lt;br /&gt;
&lt;br /&gt;
i den samme MATLAB figur for de følgende to sæt af parametre: $X=2$, $\sigma=1$, og $X=3$, $\sigma=0.3$. Tilføj en titel, labels på akserne, og en legend til dit plot, og sammenlign de to grafer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors5fig.png|frame|Plot af to forskellige Gauss-funktioner.]]&lt;br /&gt;
Først definerer man sin $x$-akse, f.eks. ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = -2:0.05:6;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Derefter giver man sine parametre&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;X1 = 2;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma1 = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;X2 = 3;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sigma2 = 0.3;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
til sidst kan man så udregne sine funktionsværdier ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = 1/( sigma1*sqrt(2*pi) ) * exp(-(x-X1).^2/(2*sigma1^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = 1/( sigma2*sqrt(2*pi) ) * exp(-(x-X2).^2/(2*sigma2^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også definere en funktion for sin Gauss-fordeling ved definitionen&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;MinGauss = @(x,a,b) 1/( b*sqrt(2*pi) ) * exp(-(x-a).^2/(2*b^2));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og med denne kan man bare skrive &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y1 = MinGauss(x,X1,sigma1);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;y2 = MinGauss(x,X2,sigma2);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Til sidst plotter man de to funktioner sammen. Her kan man bruge at &amp;lt;code&amp;gt;plot&amp;lt;/code&amp;gt; godt kan finde ud af at plotte flere funktioner af gangen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;plot(x,y1,'r-',x,y2,'b-')&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opgave 6 - Binning ==&lt;br /&gt;
I den følgende liste er der 40 målinger $t_1,\ldots,t_{40}$ af tiden det tager en sten at falde fra et vindue til jorden (alle i  hundrededele sekunder):&lt;br /&gt;
&lt;br /&gt;
:{| cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|63|| 58|| 74|| 78|| 70|| 74|| 75|| 82|| 68|| 69&lt;br /&gt;
|- &lt;br /&gt;
|76|| 62|| 72|| 88|| 65|| 81|| 79|| 77|| 66|| 76&lt;br /&gt;
|- &lt;br /&gt;
|86|| 72|| 79|| 77|| 60|| 70|| 65|| 69|| 73|| 77&lt;br /&gt;
|- &lt;br /&gt;
|72|| 79|| 65|| 66|| 70|| 74|| 84|| 76|| 80|| 69&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål a ===&lt;br /&gt;
Brug MATLAB til at udregne standardafvigelsen $\sigma_t$ for alle 40 målinger.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Først og fremmest skal datasættet lige indlæses,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;t = [63 58 74 78 70 74 75 82 68 69 76 62 72 88 65 81 79 77 66 76 86 72 79 ...&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;77 60 70 65 69 73 77 72 79 65 66 70 74 84 76 80 69];&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standardafvigelsen findes så simpelt med den indbyggede MATLAB funktion,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;std(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål b ===&lt;br /&gt;
Udregn gennemsnittene $\overline t_1,\ldots,\overline t_{10}$ af fire målinger af gangen (f.eks. af de fire målinger i hver af de 10 kolonner, eller af fire nabo-tal ad gangen). Du kan tænke på dataen som om den kom fra 10 eksperimenter, hvor man i hvert eksperiment fandt ''gennemsnittet af fire tidsmålinger''. Givet resultatet i del (a), hvad forventer du så at standardafvigelsen på de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$ er? Udregn den.&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at binne med fire målinger af gangen er det nemmest at arbejde med et loop der gør det automatisk for dig. For at bruge et generelt antal punkter at binne med defineres tallet først:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;ncol = 4;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter startes der to tomme arrays op - et til gennemsnittene, og et til standardafvigelserne (&amp;lt;code&amp;gt;zeros(n,m)&amp;lt;/code&amp;gt; laver et $n\times m$ array der indeholder nuller i alle elementer):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;gn = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sd = zeros(1,10);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et loop laver udregningerne:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for n = 0:9&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  gn(n+1) = sum(t(n*ncol+1:n*ncol + ncol))/ncol;&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;  sd(n+1) = std(t(n*ncol+1:n*ncol + ncol));&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan så endelig se &amp;lt;code&amp;gt;gn&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;sd&amp;lt;/code&amp;gt; ved simpelthen at printe dem ud via kommandolinien.&lt;br /&gt;
&lt;br /&gt;
Ud fra del (a) ville man forvente at SD er fordelt omkring den SD man fandt tidligere, og det er også det der sker.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Spørgsmål c ===&lt;br /&gt;
Plot histogrammer for både de 40 individuelle målinger $t_1,\ldots,t_{10}$ og de 10 gennemsnit $\overline t_1,\ldots,\overline t_{10}$. Brug de samme skalaer og bin størrelser for begge plot, så de kan sammenlignes. Hvad forventer du af de to histogrammer, og ser de faktisk sådan ud?&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
[[File:uge1tors6fig.png|frame|De to histogrammer til sammenligning.]]&lt;br /&gt;
For at plotte histogrammer der kan sammenlignes skal man bruge histc, hvor man kan vælge bin-grænser manuelt. Histogrammerne laves ved først at definere grænserne for bins'ene ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;nbins = 5;  %antal bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;min = 58;  %position af første bin grænse&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;dist = 6;  %bredde af bins&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;max = min+nbins*dist;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;edges = min:dist:max;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at kunne plotte bins'ene med en korrekt førsteakse skal man også finde centrum af hvert bin. Dette gøres med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;centers = min+dist*0.5:dist:max+dist*0.5;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter udregnes histogrammerne med&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;hist40 = histc(t,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hist10 = histc(gn,edges);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
og de kan nu plottes med &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt; funktionen,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;figure&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist40,0.5,'y')&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;hold on&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;bar(centers,hist10,0.3,'r')&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kan tydeligt se at hist10 er mere centreret, som forventet.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_2_taylor.m|opgaver_uge1_2_taylor.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T09:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Undo revision 362 by Silas (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T09:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Undo revision 363 by Silas (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|tirsdagsopgaver]] med statistik opgaver, [[opgaver:uge2|Torsdagsopgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 2: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 3: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag</id>
		<title>opgaver:Uge1tirsdag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag"/>
				<updated>2014-04-20T09:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Undo revision 361 by Silas (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[opgaver:Uge1mandag]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T09:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|tirsdagsopgaver]] med statistik opgaver, [[opgaver:uge2|torsdagsopgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 2: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 3: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T09:33:01Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Ny undervisningsplan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|tirsdagsopgaver]] med statistik opgaver, [[opgaver:uge2|Torsdagsopgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 2: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 3: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag</id>
		<title>opgaver:Uge1tirsdag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag"/>
				<updated>2014-04-20T09:31:31Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge_1_mandag</id>
		<title>opgaver:Uge 1 mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge_1_mandag"/>
				<updated>2014-04-20T09:28:16Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge 1 mandag to opgaver:Uge1mandag over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[opgaver:Uge1mandag]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-20T09:28:16Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge 1 mandag to opgaver:Uge1mandag over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linje ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn kvadratet af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, 10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 10/11&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det er vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linjer:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-20T09:24:58Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge1mandag to opgaver:Uge 1 mandag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linje ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn kvadratet af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, 10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 10/11&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det er vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linjer:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-20T08:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linje ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn kvadratet af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, 10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 10/11&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det er vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linjer:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-20T08:04:11Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Flere småforbedringer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linje ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn kvadratet af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, 10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det er vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linjer:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-20T07:59:02Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linie ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element.&lt;br /&gt;
# Udregn kvadratet af hvert element.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på &amp;quot;MATLAB® Primer&amp;quot; (tidligere kaldet &amp;quot;Getting Started with MATLAB&amp;quot;) bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, ...&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, ...&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, ... &amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I de uendelige lister vælger man selvfølgelig bare selv sit maksimum. Det er dog vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linier:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; er giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T07:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Rettet Absalon adresse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/ContentArea/ContentArea.aspx?LocationID=53172&amp;amp;LocationType=1].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-20T07:47:34Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: RO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/main.aspx?starturl=main.aspx&amp;amp;CourseId=44303].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I benytte programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-19T21:42:13Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: tirsdag --&amp;gt; mandag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/main.aspx?starturl=main.aspx&amp;amp;CourseId=44303].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1mandag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag</id>
		<title>opgaver:Uge1tirsdag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1tirsdag"/>
				<updated>2014-04-19T21:40:45Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge1tirsdag to opgaver:Uge1mandag: tirsdag --&amp;gt; mandag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[opgaver:Uge1mandag]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag</id>
		<title>opgaver:Uge1mandag</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=opgaver:Uge1mandag"/>
				<updated>2014-04-19T21:40:45Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: moved opgaver:Uge1tirsdag to opgaver:Uge1mandag: tirsdag --&amp;gt; mandag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disse simple øvelser skal laves som en warm-up til MATLAB. Dem der allerede er trygge ved at bruge MATLAB kan nøjes med at skimme dem igennem - men det anbefales at I går igennem dem alle for at være sikre på at I ved hvad I laver!&lt;br /&gt;
&lt;br /&gt;
Opgaverne er taget fra [http://www.facstaff.bucknell.edu/maneval/help211/exercises.html] (''Basic syntax and command-line exercises'' 1-6 og 8, samt ''Basic array exercises'' 1-3).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simpel syntaks og kommando-linie ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.1 === &lt;br /&gt;
Lav en vektor bestående af de lige heltal mellem 31 og 75.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Gå ind i MATLAB hjælp og søg på &amp;lt;code&amp;gt;colon&amp;lt;/code&amp;gt;, og læs så ''&amp;lt;nowiki&amp;gt;Colon (:)&amp;lt;/nowiki&amp;gt;'' artiklen. Du kan evt. også se på side 3-7 i ''Getting Started with MATLAB'' bogen, der ligger på Absalon.&lt;br /&gt;
&lt;br /&gt;
Her vil du se at man kan lave en liste ved hjælp af koden &amp;lt;code&amp;gt;j:i:k&amp;lt;/code&amp;gt;. Denne liste vil starte i &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt; og lægge &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; til for hvert element, indtil den kommer til &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;. Hvis den ikke rammer &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt; præcist, så vil den stoppe før den kommer over.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Dette gøres med kolon-operatoren, der kan lave lister: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x = 32:2:75&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Med denne kode starter listen ved 32 (det første af de lige tal vi gerne vil have), og stiger 2 hver gang, indtil den når til 75. Den når faktisk til 74, og ser så at 76 er over 75, og stopper derfor ved 74.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.2 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [2 5 1 6]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Lav en ny vektor af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved at addere 16 til hvert element.&lt;br /&gt;
# Lav en ny vektor der indeholder alle ulige-indeks elementerne af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, adderet med 3.&lt;br /&gt;
# Udregn kvadratroden af hvert element.&lt;br /&gt;
# Udregn kvadratet af hvert element.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at løse disse opgaver kan det være en god idé at se på ''Getting Started with MATLAB'' bogen, der ligger på Absalon. Læs om arrays fra side 3-21. Vær sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. For at lægge et tal til alle elementerne i et array skal man simpelthen bruge et plus. MATLAB forstår godt at et enkelt tal lagt til et array ikke giver mening, og laver derfor operationen på alle elementerne i arrayet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y = x + 16&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. For at lægge et tal til kun nogle bestemte elementer i et array skal man lægge det til array'et med indekserne man gerne vil have - skrevet her som en liste:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z1 = x(1:2:end) + 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternativt kan man få hele &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, hvor der kun er lagt 3 til de ønskede steder:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z2 = x + 3*[0 1 0 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dette kan selvfølgelig også gøres endnu mere generelt ved at bruge loops (det behøver I ikke kunne endnu, men det er en god ting at læse op på!):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;for i = 1:length(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    if mod(i,2) == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 0;   %lige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    else&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;        bool = 1;   %ulige tal&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    end&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;    z3(i) = x(i) + 3*bool;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Kvadratroden er en funktion i MATLAB, og funktioner der fungerer på skalarer fungerer automatisk element-vist. Derfor fås kvadratroden af hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sqrt(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Kvadratet af en vektor er ikke det samme som kvadratet af alle elementerne hver for sig, og derfor skal man huske et punktum her:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kunne også vælge at bruge&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.*x&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.3 === &lt;br /&gt;
Lad &amp;lt;code&amp;gt;x = [3 2 6 8]'&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y = [4 1 3 5]'&amp;lt;/code&amp;gt;. (NB. &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; bør være søjlevektorer).&lt;br /&gt;
&lt;br /&gt;
# Addér summen af elementerne i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; til &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Hæv hvert element af &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i potensen specificeret af det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Dividér hvert element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Gang hvert element i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med det tilsvarende element i &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, og gem resultatet i den ny variabel &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Addér elementerne i &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; og gem resultatet i den ny variabel &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Udregn &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; og fortolk resultatet.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan være en god idé at se på MATLAB funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;. Find selv information om den ved at åbne MATLAB hjælp og søge på den. Her skal du også være sikker på at du forstår hvornår man skal bruge punktum foran matematiske operatorer.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
1. Her skal man bruge funktionen &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt;, der summer over alle elementerne i den vektor den bliver fodret med,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y + sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Da vektorerne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; har samme længde, er det bare at skrive (husk at bruge et punktum, så MATLAB forstår at du vil gøre det element-vist)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;x.^y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Tilsvarende divideres der simpelthen ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;y./x&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Den nye variabel defineres ved&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;z = x.*y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Igen bruges &amp;lt;code&amp;gt;sum&amp;lt;/code&amp;gt; funktionen, og&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;w = sum(z)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Hvis alt er blevet gjort korrekt, skulle man gerne se at &amp;lt;code&amp;gt;x'*y - w&amp;lt;/code&amp;gt; er lig med nul. Udtrykket &amp;lt;code&amp;gt;x'*y&amp;lt;/code&amp;gt; er et normalt prikprodukt mellem en rækkevektor (&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der er blevet transponeret med &amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;-operatoren) og en søjlevektor. Derimod er &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; det manuelt udregnede prikprodukt.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.4 === &lt;br /&gt;
Udregn de følgende MATLAB udtryk i hånden, og brug så MATLAB til at tjekke resultaterne:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2 / 2 * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;3 ^ 2 ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Det kan hjælpe at skrive udtrykkene ind i MATLAB og tilføje parenteser så de bliver nemmere at læse. Hvis resultatet stadig er det samme efter parenteserne er blevet sat, så har du højst sandsynligt ikke misforstået noget.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
For at vise hvad udtrykkene betyder, er de her omskrevet med ekstra parenteser:&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;2 / 2 * 3 = (2/2) * 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;6 - 2 / 5 + 7 ^ 2 - 1 = 6 - (2/5) + (7^2) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;10 / 2 \ 3 - 3 + 2 * 4 = 3/(10/2) - 3 + (2*4)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 / 4 = (3^2) / 4&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;3 ^ 2 ^ 2 = (3^2) ^ 2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2 + (round((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + floor(6 / 9 + 3 * 2) / 2 - 3 = 2 + (floor((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;2 + ceil(6 / 9 + 3 * 2) / 2 - 3 = 2 + (ceil((6/9) + (3*2))/2) - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bemærk at &amp;lt;code&amp;gt;round()&amp;lt;/code&amp;gt; funktionen runder op/ned automatisk, mens &amp;lt;code&amp;gt;floor()&amp;lt;/code&amp;gt; altid runder ned og &amp;lt;code&amp;gt;ceil()&amp;lt;/code&amp;gt; altid runder op.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.5 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne...&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2, 4, 6, 8, ...&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;10, 8, 6, 4, 2, 0, -2, -4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;1, 1/2, 1/3, 1/4, 1/5, ...&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;0, 1/2, 2/3, 3/4, 4/5, ... &amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Igen skal man gøre brug af kolon operatoren, mens man i de sidste to løser opgaven nemmest ved at lave flere lister og kombinere dem:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;2:2:10&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;10:-2:-4&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x = 1:10; 1./x&amp;lt;/code&amp;gt; &lt;br /&gt;
# &amp;lt;code&amp;gt;x = 0:10; y = 1:11; x./y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I de uendelige lister vælger man selvfølgelig bare selv sit maksimum. Det er dog vigtigt i den sidste af opgaverne at man laver de to arrays lige lange - ellers er det ikke muligt at dividere dem med hinanden element-vist.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.6 === &lt;br /&gt;
Lav en vektor &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; med elementerne&lt;br /&gt;
&lt;br /&gt;
:x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (-1)&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;/(2n-1)&lt;br /&gt;
&lt;br /&gt;
Summér elementerne i versionen af denne vektor med 100 elementer.&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Start med at lave en liste &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, som du så kan udregne &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ved hjælp af. Hvis du vil have 100 elementer laver du f.eks. &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Og husk alle de nødvendige punktummer i udtrykket når du udregner &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Opgaven kan løses ved de følgende tre linier:&lt;br /&gt;
:&amp;lt;code&amp;gt;n = 1:100&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;x = ( (-1).^(n+1) ) ./ (2*n - 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 1.7 === &lt;br /&gt;
Givet en vektor, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;, med længde &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, lav MATLAB udtryk der vil udregne de følgende udtryk. Test at de virker for &amp;lt;code&amp;gt;t = 1:0.2:2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# ln(2 + t + t&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
# e&amp;lt;sup&amp;gt;t&amp;lt;/sup&amp;gt;(1 + cos(3t))&lt;br /&gt;
# cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + sin&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t)&lt;br /&gt;
# tan&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;(t) (dette er den ''inverse'' tangentfunktion)&lt;br /&gt;
# cot(t)&lt;br /&gt;
# sec&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;(t) + cot(t) - 1&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Alle de typiske matematiske funktioner som cos, sin og exp er allerede standardfunktioner i MATLAB, og de opererer element-vist. Husk dine punktummer når de er nødvendige.&lt;br /&gt;
&lt;br /&gt;
Bemærk at inverse trigonometriske funktioner starter med &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, som f.eks. &amp;lt;code&amp;gt;acos&amp;lt;/code&amp;gt; eller &amp;lt;code&amp;gt;atan&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Udtrykkene er stort set som man forventer de vil være, når bare man husker sine punktummer hvor de er nødvendige. &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;log(2+t+t.^2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;exp(t).*(1 + cos(3*t))&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cos(t).^2 + sin(t).^2&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;atan(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cot(t)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sec(t).^2 + cot(t) - 1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.1 === &lt;br /&gt;
Givet &amp;lt;code&amp;gt;x = [3 1 5 7 9 2 6]&amp;lt;/code&amp;gt;, forklar hvad de følgende kommandoer &amp;quot;betyder&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x(3)&amp;lt;/code&amp;gt; er element nummer 3 i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:7)&amp;lt;/code&amp;gt; er elementerne mellem (og inkl.) element 1 og 7, som en vektor.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det sidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(1:end-1)&amp;lt;/code&amp;gt; er alle elementer fra og med element 1 til og med det næstsidste element.&lt;br /&gt;
#&amp;lt;code&amp;gt;x(6:-2:1)&amp;lt;/code&amp;gt; er element 6,4,2 - altså alle elementer fra og med 6, med to mindre for hvert tal, indtil man når 1.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([1 6 2 1 1])&amp;lt;/code&amp;gt; er giver &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;-elementerne i rækkefølgen element 1, 6, 2, 1 og 1 igen.&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(x)&amp;lt;/code&amp;gt; er summen af alle elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
#&amp;lt;code&amp;gt;x([true true false false true true false])&amp;lt;/code&amp;gt; bruger et logisk array til at bestemme hvilke elementer der skal vises.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.2 === &lt;br /&gt;
Givet array'et &amp;lt;code&amp;gt;A = [ 2 4 1 ; 6 7 2 ; 3 5 9]&amp;lt;/code&amp;gt;, find kommandoerne der behøves for at...&lt;br /&gt;
&lt;br /&gt;
# definere en vektor &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt; der indholder den første række af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# definere et array &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; der indeholder de sidste 2 rækker af &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over kolonnerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne summen over rækkerne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
# udregne standardafvigelsen af gennemsnittet for hver kolonne i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; (NB. standardafvigelsen af gennemsnittet er defineret som standardafvigelsen divideret med kvadratroden af antallet af elementer der bruges til at udregne gennemsnittet).&lt;br /&gt;
{{hidden begin|toggle=right|title=Hint|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
Her skal du bruge kolon operatoren igen, og bemærke at den foruden at lave lister også kan bruges som et catch-all indeks i et array. Hvis du har et 1D array &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, og skriver &amp;lt;code&amp;gt;x(:)&amp;lt;/code&amp;gt;, får du bare hele array'et.&lt;br /&gt;
&lt;br /&gt;
Det kan være en hjælp at læse lidt om funktionen &amp;lt;code&amp;gt;std()&amp;lt;/code&amp;gt; i MATLAB hjælpen.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
#&amp;lt;code&amp;gt;x1 = A(1,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;y = A(end-1:end,:)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;sum(A,2)&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;N = size(A,1); e = std(A)/sqrt(N)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
=== Opgave 2.3 ===&lt;br /&gt;
Givet arrays'ene &amp;lt;code&amp;gt;x = [1 4 8]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y = [2 1 5]&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A = [3 1 6 ; 5 2 7]&amp;lt;/code&amp;gt;, find ud af hvilke udtryk der kan udføres korrekt, og giv resultaterne. Hvis udtrykket ikke kan udføres, så find ud af hvorfor. Kommandoen &amp;lt;code&amp;gt;whos&amp;lt;/code&amp;gt; kan være smart at bruge her.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt;&lt;br /&gt;
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}&lt;br /&gt;
# &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; virker, og den er en ny vektor der indeholder summen af de samme elementer i &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;x + A&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; ikke har samme dimensioner.&lt;br /&gt;
# &amp;lt;code&amp;gt;x' + y&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;x'&amp;lt;/code&amp;gt; er en søjlevektor og &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; er en rækkevektor.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - [x' y']&amp;lt;/code&amp;gt; virker ikke, da &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; er &amp;quot;flad&amp;quot; og &amp;lt;code&amp;gt;[x' y']&amp;lt;/code&amp;gt; er &amp;quot;høj&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y']&amp;lt;/code&amp;gt; virker ikke, da man ikke kan samle en matrix af to vektorer der har forskellige dimensioner på denne måde (en række og en søjle).&lt;br /&gt;
# &amp;lt;code&amp;gt;[x ; y]&amp;lt;/code&amp;gt; virker, og laver en ny matrice med &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; i den første række og y i den anden.&lt;br /&gt;
# &amp;lt;code&amp;gt;A - 3&amp;lt;/code&amp;gt; virker, og trækker 3 fra alle elementer i &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samlede løsninger ==&lt;br /&gt;
* Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge1_1_bucknell.m|opgaver_uge1_1_bucknell.m]]&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-19T21:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: Tirsdag --&amp;gt; Mandag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/main.aspx?starturl=main.aspx&amp;amp;CourseId=44303].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1tirsdag|Mandagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	<entry>
		<id>http://efwiki.bozack.dk/index.php?title=Forside</id>
		<title>Forside</title>
		<link rel="alternate" type="text/html" href="http://efwiki.bozack.dk/index.php?title=Forside"/>
				<updated>2014-04-19T21:35:56Z</updated>
		
		<summary type="html">&lt;p&gt;Silas: 2013 --&amp;gt; 2014&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
Velkommen til Eksperimentel Fysik 2014 wikien! Denne side er stadig under udvikling, men du kan allerede nu finde de opgaver der skal laves i løbet af kurset. Senere vil der muligvis også komme lidt hjælp til LaTeX og MATLAB.&lt;br /&gt;
&lt;br /&gt;
Du skal selvfølgelig også holde øje med kursets hoved-side, der ligger på Absalon, [https://absalon.itslearning.com/main.aspx?starturl=main.aspx&amp;amp;CourseId=44303].&lt;br /&gt;
&lt;br /&gt;
== MATLAB opgaver ==&lt;br /&gt;
Nedenfor er der links til sider med opgaver, hvor du kan få hints og løsninger samtidig med at du laver opgaverne.&lt;br /&gt;
&lt;br /&gt;
Før du kan lave disse opgaver, skal du selvfølgelig have installeret MATLAB. Der er en guide til dette på Absalon. Derefter kan det være en god idé at kigge igennem den korte (men gode) introduktion som kan findes her: [http://computerfysik.dk/programmering/matlab-introduktion/]&lt;br /&gt;
&lt;br /&gt;
* Uge 1: [[opgaver:uge1tirsdag|Tirsdagsopgaver]] som introduktion til MATLAB, [[opgaver:uge1torsdag|torsdagsopgaver]] med statistik opgaver&lt;br /&gt;
* Uge 2: [[opgaver:uge2|Opgaver]] om indlæsning af data og plotning&lt;br /&gt;
* Uge 3: [[opgaver:uge3|Opgaver]] om fitning af data&lt;br /&gt;
* Uge 4: [[opgaver:uge4|Opgaver]] om mere fitning af data&lt;br /&gt;
* Uge 5: [[opgaver:uge5|Opgaver]] om avanceret statistik&lt;br /&gt;
&lt;br /&gt;
I enden af hver af opgavesiderne kan I desuden hente en MATLAB &amp;lt;code&amp;gt;.m&amp;lt;/code&amp;gt; fil, der indeholder løsninger til alle opgaverne. Koden i løsningerne skrevet under hver opgave er indeholdt samlet i denne fil, som bare kan køres fra en ende af.&lt;br /&gt;
&lt;br /&gt;
== Programmer ==&lt;br /&gt;
I kurset skal I programmet MATLAB til at lave dataanalyse og -præsentation, og LaTeX til at skrive jeres rapporter og artikler ind. I denne wiki kan du få lidt start-hjælp til at indstallere de to programmer, og til at komme i gang med dem.&lt;br /&gt;
&lt;br /&gt;
* [[MATLAB hjælp|MATLAB hjælp side]]&lt;br /&gt;
** [[MATLAB figur handles|Introduktion til handles]]&lt;br /&gt;
* [[LaTeX hjælp|LaTeX hjælp side]]&lt;br /&gt;
** [[Nemme LaTeX tabeller|Nem måde at lave tabeller på]]&lt;br /&gt;
&lt;br /&gt;
== Andet ==&lt;br /&gt;
Nogle få andre små guides:&lt;br /&gt;
&lt;br /&gt;
* [[At skrive en logbog]]&lt;br /&gt;
* [[At lave en præsentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Silas</name></author>	</entry>

	</feed>