opgaver:Uge3

(Difference between revisions)
Jump to: navigation, search
m (TIlføjet opgave 1b: Andenordensled, residuals.)
Line 5: Line 5:
  
 
=== Spørgsmål 1 - Lineær model ===
 
=== Spørgsmål 1 - Lineær model ===
 +
 
Antag at I har en lineær model som i Barlow afsnit 6.2<!--Taylor afsnit 8.2-->,
 
Antag at I har en lineær model som i Barlow afsnit 6.2<!--Taylor afsnit 8.2-->,
  
Line 74: Line 75:
 
:<code>chi2red = chi2/(N-2);</code>
 
:<code>chi2red = chi2/(N-2);</code>
 
{{hidden end}}
 
{{hidden end}}
 +
 +
==== 1b - Andenordenskorrektion ====
 +
 +
Lav ny en ny serie af datapunkter ud fra forskriften
 +
 +
:$ y = A + B x + C x^2$
 +
 +
Vælg <code>C = 0.1</code>, for samme interval af x-værdier. Udregn nu det reducerede $\chi^2$ mellem det gamle fit og de nye data. Bliver det værre eller bedre?
 +
 +
Lav nu et plot af residuals, Residuals er afvigelsen mellem data- og fitværdier for hvert målepunkt. Disse kan bruges til at opdage systematisk afvigelser, hvilket kan indikere at fitmodellen er utilstrækkelig.
 +
 +
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}
 +
Først laves en ny serie y-modelværdier:
 +
:<code>C_model = 0.3;</code>
 +
:<code>y_model_ny = A_model + B_model*x + C_model*x.^2;</code>
 +
Dernæst laves nye værdier med støj:
 +
:<code>y_ny = y_model_ny + sigma_y.*randn(size(y_model));</code>
 +
 +
Vi kan derefter plotte de nye værdier sammen med de gamle samt både den gamle og nye model samt fittet til de lineære data. Du kan evt. supplere med et lineært fit til de nye data.
 +
:<code>figure</code>
 +
:<code>errorbar(x,y,sigma_y,'bo','MarkerFaceColor', [0.4 0.4 0.8],...</code>
 +
:<code>'MarkerEdgeColor',[0.4 0.4 0.8])</code>
 +
:<code>hold on</code>
 +
:<code>errorbar(x,y_ny,sigma_y,'bo','MarkerFaceColor', [0.4 0.4 0.4],...</code>
 +
:<code>'MarkerEdgeColor',[0.4 0.4 0.4])</code>
 +
:<code>plot(x,y_model,'r-','LineWidth',2)</code>
 +
:<code>plot(x,y_model_ny,'k-','LineWidth',2)</code>
 +
:<code>y_fit = A_fit + B_fit*x;</code>
 +
:<code>plot(x,y_fit,'g-','LineWidth',2)</code>
 +
:<code>xlabel('Datapunkter x')</code>
 +
:<code>ylabel('Datapunkter y')</code>
 +
:<code>hold off</code>
 +
Herefter udregnes det nye reducerede $\chi^2$-værdi.
 +
:<code>chi2_ny    = sum((y_ny-y_fit).^2 ./ sigma_y.^2);</code>
 +
:<code>chi2red_ny = chi2_ny/(N-2);</code>
 +
 +
Til sidst plottes residuals.
 +
:<code>figure</code>
 +
:<code>bar(x,y_ny-y_fit)</code>
 +
:<code>hold on</code>
 +
:<code>bar(x,y-y_fit,'r','BarWidth',0.5)</code>
 +
{{hidden end}}
 +
  
 
=== Spørgsmål 2 - Gentagelse ===
 
=== Spørgsmål 2 - Gentagelse ===

Revision as of 15:31, 1 May 2015

I denne opgave skal I arbejde med fitning som forklaret i Barlow kapitel 6. I skal her selv lave et datasæt, og lærer derfor også hvordan man genererer tilfældige tal i MATLAB. Opgave 2 og 3 er uafhængige, og kan laves i den rækkefølge I har lyst til.


Contents

Opgave 1 - Fitning

Spørgsmål 1 - Lineær model

Antag at I har en lineær model som i Barlow afsnit 6.2,

$y = A + B x .$

Vælg passende værdier af A og B og lav en vektor x med målepunkter, f.eks. A = 0, B = 1, x = -2:0.1:2. Lav nu en vektor med den "sande" y ud fra modellen. Vælg en usikkerhed for målingerne, og læg en normalfordelt støj til hver måling - brug MATLAB funktionen randn(). Plot målingerne (med usikkerhederne) og den "sande" model i samme plot.

Beregn lineær regression ud fra Barlow og find de estimerede værdier for A og B, og beregn den fittede modelværdi, y_fit. Plot y_fit oveni det forrige plot og se hvor godt fittet er. Beregn den reducerede $\chi^2$, givet ved

$\dfrac{\chi^2}{N-P} ,$

hvor $N$ er antal datapunkter og $P$ er antal fit-parametre.

1b - Andenordenskorrektion

Lav ny en ny serie af datapunkter ud fra forskriften

$ y = A + B x + C x^2$

Vælg C = 0.1, for samme interval af x-værdier. Udregn nu det reducerede $\chi^2$ mellem det gamle fit og de nye data. Bliver det værre eller bedre?

Lav nu et plot af residuals, Residuals er afvigelsen mellem data- og fitværdier for hvert målepunkt. Disse kan bruges til at opdage systematisk afvigelser, hvilket kan indikere at fitmodellen er utilstrækkelig.


Spørgsmål 2 - Gentagelse

Gentag dette "numeriske forsøg" et antal gange (f.eks. 100) og gem for hver gang fittets parametre. Brug hist() til at finde fordelingen af A, B, og reduceret $\chi^2$. Sammenlign med den estimerede usikkerhed på A og B, og undersøg evt. korrelationen mellem A og B (plot f.eks. A vs. B).

Spørgsmål 3 - Automatisk fitning i MATLAB

Prøv at anvende MATLABs fittefunktion fit(x,y,'funktion') og sammenlign med jeres egen lineære regression.


Samlede løsninger

  • Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: opgaver_uge3_fits.m


Personal tools
Namespaces
Variants
Actions
Navigation
Opgaver
Andet
Toolbox
Commercial