2012-10-28, 17:15
  #30985
Medlem
Nails avatar
Citat:
Ursprungligen postat av Careless
Jag hänger inte riktigt med. Vi har:
p'(x)/p(x) = sum_(k=1)^n 1/(x-a_i)

Hur blir jag av med p'(x) i täljaren?
p'(x)/p(x) = 1/(x-a_1) + 1/(x-a_2) + ...
Enkelt, dividera båda led med p'(x)
1/p(x) = 1/(p'(x)(x-a_1)) + 1/(p'(x)(x-a_2)) + ...
Citera
2012-10-28, 17:22
  #30986
Medlem
Carelesss avatar
Citat:
Ursprungligen postat av dMoberg
Jag förstår inte vad du menar. :/
Jag menar, tar jag derivatan av hela log(p(x)) eller logaritmen av derivatan av p(x)? Hur skriver jag om det är det förstnämnda? 'log(p(x))?

Citat:
Ursprungligen postat av Nail
p'(x)/p(x) = 1/(x-a_1) + 1/(x-a_2) + ...
Enkelt, dividera båda led med p'(x)
1/p(x) = 1/(p'(x)(x-a_1)) + 1/(p'(x)(x-a_2)) + ...
Åh, men i uppgiften är det 1/(p'(a_i)(x-a_i)), inte 1/(p'(x)(x-a_i)).
Citera
2012-10-28, 17:52
  #30987
Medlem
adequates avatar
Citat:
Ursprungligen postat av Careless
Jag menar, tar jag derivatan av hela log(p(x)) eller logaritmen av derivatan av p(x)? Hur skriver jag om det är det förstnämnda? 'log(p(x))?
(log(p(x)))' kanske. Men vad är det för fel på d/dx log(p(x))?
Citera
2012-10-28, 18:01
  #30988
Medlem
Carelesss avatar
Citat:
Ursprungligen postat av adequate
(log(p(x)))' kanske. Men vad är det för fel på d/dx log(p(x))?
Känner mig mer bekväm med Lagranges notationer och det känns aningen inkonsekvent att slänga in ett d/dx mitt bland alla primtecken.
Citera
2012-10-28, 18:03
  #30989
Medlem
Någon som vet hur man hittar närmevärde för t.ex cos(0.4) med högst 0.0001 avikelse?
Citera
2012-10-28, 19:15
  #30990
Medlem
dxdps avatar
Citat:
Ursprungligen postat av Careless
Jag menar, tar jag derivatan av hela log(p(x)) eller logaritmen av derivatan av p(x)? Hur skriver jag om det är det förstnämnda? 'log(p(x))?

Åh, men i uppgiften är det 1/(p'(a_i)(x-a_i)), inte 1/(p'(x)(x-a_i)).

Rimligen bör det vara ett tryckfel dock. För om vi antar att den gäller så säger den att:

p = (x-1)(x-2)(x-3) (a_1 = 1, a_2 = 2 och a_3 = 3)
1/((x-1)(x-2)(x-3))

p' = (x-2)(x-3) + (x-1)(x-2) + (x-1)(x-3)

Så:

p'(a_1) = p'(1) = 2
p'(a_2) = p'(2) = -2
p'(a_3) = p'(3) = 2

Så:

1/((x-1)(x-2)(x-3)) = 1/(2(x-1) - 1/(2(x-2)) + 1/(2(x-3))

Men det stämmer inte. Tag till exempel x=4 då ska:

VL = 1/(3*2*1) = 1/6
HL = 1/(2*3) - 1/(2*2) + 1/(2*1)

Men VL != HL för i så fall skulle -1/4 + 1/2 = 0 och det stämmer inte.

Alltså kan inte formeln stämma. Det är rimligare att anta att det ska vara med 1/p'(x) och att det är tryckfel.
Citera
2012-10-28, 19:29
  #30991
Medlem
c^2s avatar
Citat:
Ursprungligen postat av andha
Någon som vet hur man hittar närmevärde för t.ex cos(0.4) med högst 0.0001 avikelse?

Utveckla ett taylorpolynom kring 0 och utnyttja Lagranges restterm för att hitta en så låg grad som möjligt som ändå uppfyller villkoret.

Lagranges restterm kan beskrivas
|E| = f^n(s)*x^n/n! , där s ligger mellan 0.4 och 0.
f^n(s) kan högst anta värdet 1 vilket även skulle maximera felet och vi kan då ställa upp olikheten
1*0.4^n/n! = 0.4^n/n! <= 0.0001
Vi vill nu hitta ett n som är så lågt som möjligt, men som ändå uppfyller olikheten ovan.
Sätter vi n = 4 får vi ≈ 0.001 vilket är för stort fel. n = 5 ger oss ≈ 0.00009. Alltså ger n = 5 oss på Lagranges restterm ett fel som är inom vårat villkor.

Vi kan då utveckla ett Maclaurinpolynom av fjärde ordningen:
f(x) = cos(x) , f(0) = 1
f'(x) = -sin(x) , f'(0) = 0
f''(x) = -cos(x) , f''(0) = -1
f'''(x) = sin(x) , f'''(0) = 0
f^(4)(x) = cos(x) , f^(4)(0) = 1
Polynomet blir då:
P_4(x) = f(0)+f'(0)*x+f''(0)*x^2/2!+f'''(0)*x^3/3!+f^(4)x^4/4!
P_4(x) = 1+0-x^2/2+0+x^4/24 = 1-x^2/2+x^4/24

P_4(0.4) = 1-(0.4)^2+(0.4)^4/24 ≈ 0.92106667

Och eftersom cos(0.4) ≈ P_4(0.4) har vi då att cos(0.4) ≈ 0.92106667 där felet är mindre än 0.0001.
__________________
Senast redigerad av c^2 2012-10-28 kl. 19:33.
Citera
2012-10-28, 21:41
  #30992
Medlem
SwAxXs avatar
Jag håller på med en matlab inlämning. Jag ska skriva en kod där jag använder newton-raphson för att beräkna ut nollställe. Saken är den att jag ska beräkna vart derivatan är noll, men jag får inte till koden.

newton-raphson ser ju ut såhär: x=x-f(x)/f'(x)

Om jag då ska hitta extremvärden till funktionen f, ska jag då skriva typ: x=x-f'(x)/f''(x)?
Citera
2012-10-28, 22:16
  #30993
Medlem
c^2s avatar
Citat:
Ursprungligen postat av SwAxX
Jag håller på med en matlab inlämning. Jag ska skriva en kod där jag använder newton-raphson för att beräkna ut nollställe. Saken är den att jag ska beräkna vart derivatan är noll, men jag får inte till koden.

newton-raphson ser ju ut såhär: x=x-f(x)/f'(x)

Om jag då ska hitta extremvärden till funktionen f, ska jag då skriva typ: x=x-f'(x)/f''(x)?

Newton-Raphsons metod är x_(n+1) = x_n-f(x_n)/f'(x_n) där man sen använder x_(n+1) igen för att få fram x_(n+2) och kan sen iterera till man når en rot med önskad noggrannhet.

Du kan studera den lite mer här:
http://sv.wikipedia.org/wiki/Newtons_metod

Själva grundtanken blir då att skapa en loop i Matlab, nu vet jag inte vad som sätter villkoret för noggrannheten i din uppgift.
Citera
2012-10-28, 22:48
  #30994
Medlem
SwAxXs avatar
Citat:
Ursprungligen postat av c^2
Newton-Raphsons metod är x_(n+1) = x_n-f(x_n)/f'(x_n) där man sen använder x_(n+1) igen för att få fram x_(n+2) och kan sen iterera till man når en rot med önskad noggrannhet.

Du kan studera den lite mer här:
http://sv.wikipedia.org/wiki/Newtons_metod

Själva grundtanken blir då att skapa en loop i Matlab, nu vet jag inte vad som sätter villkoret för noggrannheten i din uppgift.

Jag är medveten om hur newtonmetoden fungerar. Det jag undrar över är om det går att göra newtonmetoden för att få ut extrempunkter? Dvs utan att derivera min funktion manuellt.
Citera
2012-10-28, 23:05
  #30995
Medlem
c^2s avatar
Citat:
Ursprungligen postat av SwAxX
Jag är medveten om hur newtonmetoden fungerar. Det jag undrar över är om det går att göra newtonmetoden för att få ut extrempunkter? Dvs utan att derivera min funktion manuellt.

Ja det går, men med tanke på frågeställningen så får jag för mig att det är meningen att du ska derivera funktionen manuellt.

Låt säga att du har funktionen f(x) = x^2-1 och ska ta reda på nollställena där, då har jag skrivit några rader nu bara där vi gissar att ena roten är då x = 2, och där man sedan itererar 10 ggr för att komma fram till ett mer exakt värde för nollstället. Du kan även använda en whileloop som kör så länge felet är större än ett visst värde.


Citera
2012-10-28, 23:44
  #30996
Medlem
Citat:
Ursprungligen postat av c^2
Utveckla ett taylorpolynom kring 0 och utnyttja Lagranges restterm för att hitta en så låg grad som möjligt som ändå uppfyller villkoret.

Lagranges restterm kan beskrivas
|E| = f^n(s)*x^n/n! , där s ligger mellan 0.4 och 0.
f^n(s) kan högst anta värdet 1 vilket även skulle maximera felet och vi kan då ställa upp olikheten
1*0.4^n/n! = 0.4^n/n! <= 0.0001
Vi vill nu hitta ett n som är så lågt som möjligt, men som ändå uppfyller olikheten ovan.
Sätter vi n = 4 får vi ≈ 0.001 vilket är för stort fel. n = 5 ger oss ≈ 0.00009. Alltså ger n = 5 oss på Lagranges restterm ett fel som är inom vårat villkor.

Vi kan då utveckla ett Maclaurinpolynom av fjärde ordningen:
f(x) = cos(x) , f(0) = 1
f'(x) = -sin(x) , f'(0) = 0
f''(x) = -cos(x) , f''(0) = -1
f'''(x) = sin(x) , f'''(0) = 0
f^(4)(x) = cos(x) , f^(4)(0) = 1
Polynomet blir då:
P_4(x) = f(0)+f'(0)*x+f''(0)*x^2/2!+f'''(0)*x^3/3!+f^(4)x^4/4!
P_4(x) = 1+0-x^2/2+0+x^4/24 = 1-x^2/2+x^4/24

P_4(0.4) = 1-(0.4)^2+(0.4)^4/24 ≈ 0.92106667

Och eftersom cos(0.4) ≈ P_4(0.4) har vi då att cos(0.4) ≈ 0.92106667 där felet är mindre än 0.0001.


Tack!! Riktigt bra!
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