While-loop taylorpolynom
Jag ska beräkna ett approximativt värde på ln3 genom taylorserien av ln x kring x = 1 och addera alla termer vars absolutbelopp är större än 10^-8
ln x = ....
Det jag har till hjälp är denna kod:
tol=1e-8; s=0; i=0;
term=;
while abs(term) > tol
s=s+term;
i=i+1;
term=...;
end
Jag förstår mig inte riktigt på hur jag ska gå vidare, har googlat runt efter liknande problem utan lycka då alla använder syms. Skulle uppskatta lite vägledning
Vi kan se ett mönster i varje term. Taylorserien är:
I ditt fall är x=3. Kan du se hur detta kan stoppas in i koden?
Hondel skrev:Vi kan se ett mönster i varje term. Taylorserien är:
I ditt fall är x=3. Kan du se hur detta kan stoppas in i koden?
Jag tänkte mig att sätta term = (x-1)^i/i men får inte ut något resultat
Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Betyder term=; att term blir 1?
Laguna skrev:Betyder term=; att term blir 1?
Det betyder att studenten ska fylla i den kod som fattas efter = tecknet. Koden avslutas med semikolon för att undvika visning.
Albiki skrev:Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Så innan while-loopen ska term=1?
Bnim skrev:Albiki skrev:Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Så innan while-loopen ska term=1?
Nej, eftersom första raden i loopen är s+term så måste du ha term=första termen i summan utanför loopen.
Hondel skrev:Bnim skrev:Albiki skrev:Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Så innan while-loopen ska term=1?
Nej, eftersom första raden i loopen är s+term så måste du ha term=första termen i summan utanför loopen.
Så innan loopen är term= (x-1) och inom loopen ska term=serien? Kan vara värt att tillägga att x = 1/3
Bnim skrev:Albiki skrev:Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Så innan while-loopen ska term=1?
Korrigering: Innan snurran ska term vara 2 och inte 1 som jag skrev tidigare.
Albiki skrev:Bnim skrev:Albiki skrev:Hej,
Det som i koden betecknas är partialsummor till .
och det som betecknas är
och denna term uppdateras för varje steg hos while-snurran.
Innan snurran startar är term lika med och eftersom kommer snurran att starta.
Så innan while-loopen ska term=1?
Korrigering: Innan snurran ska term vara 2 och inte 1 som jag skrev tidigare.
Det som ska sättas in är x = 1/3 så term = (1/3-1). Men då är problemet i loopen, har prövat sätta term=serien men utan någon lycka. Term = 2^i / i ger ingenting.
Om x=3 så kommer snurran aldrig att stanna eftersom divergerar. Det är därför man sätter istället och i slutsteget använder att för att få den sökta approximationen till .
Sätt i=1 istället för i=0 och term till 1/3-1 utanför snurran och term till innanför snurran så går det nog bra.