2009-02-03, 23:28
  #1
Medlem
Efter att i en tidigare trd ha blivit rekommenderad Lamberts W-funktion fr att lsa ekvationen 5*1.6^z-z=5*10^6 s har jag nu tagit en titt p det hela, och frstr ungefr vad teorin bakom det r. Vissa frgetecken kvarstr dock.

Frst och frmst, wikipedias exempel: Jag har vridit fram och tillbaka p den under hela eftermiddagen nu, utan att riktigt greppa den. Det vore hemskt uppskattat om ngon kunde fylla i luckorna:

Citat:
[T]he equation

p^{a*x + b} = c*x + d

where

p>0 and c,d!=0

can be transformed via the substitution

-t = a*x +a*d/c

into

t*p^t = R = -(a/c)*p^(b-a*d/c)

giving

t =W(R*ln(p))/ln(p)

which yields the final solution

x = -W(-(a*ln(p)/c)*p^(b-a*d/c))/(a*ln(p)) - d/c

Jag fastnar ungefr nr man byter ut t, och har fruktansvrt svrt att f hela grejen rtt. Skulle ngon orka vara pedagogisk nog att g igenom den lite mer steg fr steg, s att jag fr rtsida p det hela? D jag verkar f fel svar nr jag applicerar formeln 'blint' efter wikipedias instruktion, misstnker jag att det r just i det hr steget som jag fular till saker, alternativt s har jag missat att den inte r applicerbar p ngot vnster. Mitt svar borde ligga p runt 30 eller s; nr jag matar in uttrycket i 'Qalculate!' blir mitt svar runt -5*10^6, dvs -d/c om man applicerar formeln direkt.

I vrigt r jag mest i behov av ngra frtydliganden. Funktionen W(z) r allts helt enkelt en funktion som man definierat till att vara inversen av f(x)=xe^x, och inte en faktisk funktion som det finns ett enkelt uttryck fr, annat n som inversen av f(x)? P vilken niv inom matematiken stter man normalt p Lambert W:s funktion? Vet ngon hur bedmare inom IBO skulle se p att man anvnde sig av konceptet i en portfolio? Stort tack p frhand, all hjlp r verkligen guld vrd.
Citera
2009-02-04, 00:52
  #2
Medlem
Jag har lst en hel del matematik p hgskolan, och dr har aldrig varit ngon som nmnt LambertW. Vad jag kan se s tjnar det ingenting till att lsa ut x med LambertW eftersom den nd mste evalueras numeriskt, och d kan du lika bra ta och lsa ekvationen numeriskt direkt.
Citera
2009-02-04, 01:35
  #3
Medlem
N, ven fast det var jag som lnkade till skiten, s blir jag lite konfundersam.

Exemplet p wikipedia, 2^t = 5t har ju dels en lsning i t ~ 0.2355, men ven en lsning d t ~ 4.48785 och hur man hittar den senare med hjlp av W() r fr mig oklart.

Vad r det fr kurs du ftt den uppgiften i? Kanske vill de att du helt enkelt skall inse att du kan skippa termen "-z" och uppskatta lsningen som z ~ 6*ln(10)/ln(1.6) ~ 29.4 ?
Citera
2009-02-04, 08:21
  #4
Medlem
Citat:
Ursprungligen postat av Larsson85
Jag har lst en hel del matematik p hgskolan, och dr har aldrig varit ngon som nmnt LambertW. Vad jag kan se s tjnar det ingenting till att lsa ut x med LambertW eftersom den nd mste evalueras numeriskt, och d kan du lika bra ta och lsa ekvationen numeriskt direkt.
Med det resonemanget kan man lika vl hvda att exp, ln, sqrt, sin m.fl. r meningslsa.
Citera
2009-02-04, 10:18
  #5
Medlem
Naturligtvis skulle jag kunna utvrdera den numeriskt, men fr mig har det hr blivit mer intressant fr frstelsen i sig n fr uppgiften. Dessutom ser det ganska mycket 'frschare' ut om man slnger in Lambert W istllet fr en sketen numerisk uppskattning nr man rknar ut det, det ger ett mtt av exakthet skulle man vl kunna sga.

Kursen jag lser r Higher Level Math, vi har aldrig nmnt Lambert W. D uppgiften r en del av en portfolio kan jag inte bara slnga bort z, det skulle mnniskorna som rttar det hela f tokspatt av.

terigen, ingen som skulle orka ge mig en walkthrough av den hrledning jag postade i mitt frsta inlgg?
Citera
2009-02-04, 12:44
  #6
Medlem
Hrledning av vad? Wikipedias slutgiltiga formel fr x?

Brja med 5*1.6^z-z=5*10^6 och skriv om det p samma form som p Wikipedia, d.v.s

1.6^z = (1/5)*z + 10^6

eller

p^z = c*z +d, (1)


dr p = 1.6, c = (1/5) och d = 10^6 (a = 1, b = 0).

Gr substitutionen -t = z + d/c, d.v.s z = -t - d/c. Insatt i (1) fr du att

p^(-t - d/c) = c*(-t - d/c) + d = -c*t - d + d = -c*t.

Substitutionen tar allts bort den konstanta termen i hgerledet. Ytterligare omskrivning ger att

-(1/c)* p^(-d/c) = t*(p^t).

Fr att anvnda W-funktionen vill du skriva om hgerledet p formen t*e^t.

Anvnd att p^t = e^ln(p^t) = e^(t*ln(p)).

t*e^(t*ln(p)) = -(1/c)*p^(-d/c).

Multiplicera bgge led med ln(p),

t*ln(p)*e^(t*ln(p)) = -(ln(p)/c)*p^(-d/c).

Stt y = t*ln(p)

y*e^y = -(ln(p)/c)*p^(-d/c).

Anvnd att x*e^x = y ger att x = W(y), d.v.s

y = W(-(ln(p)/c)*p^(-d/c))

eller, eftersom y = t*ln(p),

t = W(-(ln(p)/c)*p^(-d/c))/ln(p).

Slutligen, byt tillbaka till z genom t = -z - d/c

-z - d/c = W(...)/ln(p),

z + d/c = -W(...)/ln(p),

z = -W(...)/ln(p) - d/c,

vilket r formeln p Wikipedia. Hur du sedan gr vidare vet jag faktiskt inte. Argumentet till W() r ju i princip noll, eftersom du fr

... = -(ln(1.6)*5)*1.6^(-5*10^6), och 1.6^(-5*10^6) r otroligt litet.

D W(0) = 0 skulle det allts bli

z = -0/ln(1.6) - 5*10^6 = -5*10^6,

vilket r helt galet. Frmodligen r det W-funktionens flervrdighet som spkar, men jag har frtrngt komplexanalysen.

Ngon annan kanske ser vad som r fel?

Edit: Eller galet och galet, z = -5*10^6 r ju en "lsning" eftersom du fr att 5*1.6^(-5*10^6) -(-5*10^6) ~ 5*0 + 5*10^6 = 5*10^6.
__________________
Senast redigerad av Anencefali 2009-02-04 kl. 12:54.
Citera
2009-02-04, 14:30
  #7
Medlem
Anencefali, tack. Och jo, det blir otroligt litet, jag fr nmligen precis samma svar. Jag fr vad jag tror r rtt svar om jag i svaret tar det absoluta vrdet av 5*10^6, om jag tnker bort minustecknet med andra ord. D ser det hela ut ungefr shr:

−(W(5⋅1.6^(5⋅10^6)⋅log(1.6)))/log(1.6)+5⋅10^6

vilket ger att z r ungefr 30, vilket stmmer vl verens med svaret jag frvntar mig. D r frgan bara, hur fasiken kommer man dit? Jag sitter och pillar hr allt eftersom, men knn er fria att slnga in ett inlgg om ni fr ngon form av uppenbarelse rrande det hela.
__________________
Senast redigerad av nonamenikos 2009-02-04 kl. 14:34.
Citera
2009-02-04, 23:09
  #8
Medlem
evolutes avatar
Det handlar frmst tv saker. Fr det frsta r argumentet till funktionen fr litet fr att en dator ska hantera det, fr det andra ligger den lsning du r ute efter inte p W-funktionens principialgren.

Om jag plottar principialgrenen i bltt i MATLAB som i figuren nedan ser man att den lsning som hittas r den nra origo, eftersom argumentet x ≈ 0. Den andra lsningen som ger ett z runt 30 ges p den andra grenen, plottad i rtt, fr ett extremt litet argument x som ger ett vrde p W-funktionen kring ~ -10^6 s att de tv termerna balanseras.

I MATLAB har jag plottad grenen med beteckning k = -1 fr att f den rda kurvan.

http://i39.tinypic.com/34gadmf.jpg

Det gr dock att rkna ut ett vrde p z om vi anvnder ngon lmplig asymptotisk form av W. Definitionen fr Lambertfunktionen r x = W(x)exp(W(x)). Betrakta negativa x och stora vrden av -W(x). D kan vi skriva (-x) = -W(x)exp(W(x)) och tar man logaritmen av bda sidor s fr vi
ln(-x) = ln(-W(x)) + W(x) ≈ W(x)
eftersom den linjra termen dominerar den logaritmiska. En frsta approximation r allts W(x) ≈ ln(-x). Anvnder vi detta fr vi dock i detta problem
z0 ≈ -ln(5ln(1.6)*1.6^(-5*10^6))/ln(1.6) - 5*10^6 = -ln(5ln(1.6))/ln(1.6) ≈ -1.82
vilket uppenbarligen inte r rtt. Lt oss istllet gra s att vi stoppar in vr frsta grova approximation i den logaritmiska slasktermen vi slngde bort s att vi har
ln(-x) ≈ ln(-ln(-x)) + W(x)
vilket ger
W(x) ≈ ln(-x) - ln(-ln(-x)).
Detta ger i vrt problem
z1 ≈ z0 + ln(-ln(5ln 1.6) + 5*10^6*ln(1.6))/ln(1.6) ≈ 29.3945
vilket r rtt till fjrde decimalen (minst). Om vi vill kan vi fortstta nstla approximationer p det hr sttet men det verkar inte behvas.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in