6 svar
391 visningar
sexlaxarienslaksax behöver inte mer hjälp
sexlaxarienslaksax 157 – Fd. Medlem
Postad: 16 feb 2018 02:19

MATLAB #2 | Kurvanpassning och förbjuden magi

Uppgift:

Problem:

Vet inte hur jag ska skriva om funktionen enligt tipset i ledtråden och lösa uppgiften.

y(x) = ln(a+bx)ey(x) =bx + a

 

Kod:

x = [ 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 1.10 1.20 1.30 1.40 1.50 ];
y = [ 1.23 1.56 1.63 1.96 2.10 2.00 2.15 2.43 2.37 2.24 2.39 2.72 2.61 2.48 2.63 ];

y = @(x) ln(a+b.*x);

JonisL 30 – Fd. Medlem
Postad: 16 feb 2018 10:15

Din omskrivning av funktionen är helt rätt:

e^y = bx + a 

Så nu kommer det till MKM.

Den ser ut som A' * A * x = A' * b

Där: A = [x1, c; x2, c; ... xn, c];  x är de värden du fått, c markerar din konstant och är lika med ett på alla rader
        A' är transponatet till A.
        b = exp(y)

När du har löst vad A'*A och A'*b kan du använda \ operatorn för att lösa för x.

sexlaxarienslaksax 157 – Fd. Medlem
Postad: 16 feb 2018 15:31
JonisL skrev :

A' * A * x = A' * b
        b = exp(y)

Är det samma b här e^y = bx + a  och här A' * A * x = A' * b ?

A = [x.' [ones(15,1)]];

statement 2574 – Fd. Medlem
Postad: 16 feb 2018 17:19

För att slippa hålla på och transponera föreslår jag att bara köra

 p = polyfit(x,exp(y),1) 
.
JonisL 30 – Fd. Medlem
Postad: 16 feb 2018 17:20 Redigerad: 16 feb 2018 17:21

Nej, b är standardnotationen för vektorn med funktionsvärden i MKM. I detta fall är alltså vektorn b = exp(y) efter omskrivningen av funktionen.

Albiki 5096 – Fd. Medlem
Postad: 16 feb 2018 23:19

Hej!

När du tillämpar Minsta-kvadratmetoden på transformerade data så utgår du från att följande modell gäller.

    eY(x)=a+bx+ex , e^{Y(x)} = a+bx + e_{x}\ ,

där slumpvariabeln ex e_{x} är normalfördelad med väntevärde noll och konstant varians ( σ2 \sigma^2 ). Det medför den konstiga modellen att slumpvariabeln

    Y(x)=lnZ(x) Y(x) = \ln Z(x)

där slumpvariabeln Z(x) Z(x) är normalfördelad med väntevärde a+bx a+bx och konstant varians σ2. \sigma^2.

Det gäller alltså inte att Y(x)=ln(a+bx)+fx Y(x) = \ln (a+bx) + f_{x} där slumpvariabeln fx f_{x} är normalfördelad med väntevärde noll och konstant varians; ett faktum  som många missar när de arbetar med transformerade variabler då det tror att logaritmfunktionen är additiv, ln(a+bx+ex)=ln(a+bx)+ln(ex) . \ln (a+bx + e_{x}) = \ln(a+bx) + \ln(e_{x})\ .

Albiki

sexlaxarienslaksax 157 – Fd. Medlem
Postad: 19 feb 2018 20:24

Tacktack

Svara
Close