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.
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);
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.
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)]];
För att slippa hålla på och transponera föreslår jag att bara köra
p = polyfit(x,exp(y),1).
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.
Hej!
När du tillämpar Minsta-kvadratmetoden på transformerade data så utgår du från att följande modell gäller.
där slumpvariabeln är normalfördelad med väntevärde noll och konstant varians (). Det medför den konstiga modellen att slumpvariabeln
där slumpvariabeln är normalfördelad med väntevärde och konstant varians
Det gäller alltså inte att där slumpvariabeln ä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,
Albiki
Tacktack