Hei. Jeg har litt problemer med å løse en oppgave og trenger da litt hjelp!
Oppgaven lyder:
Bruk Newtons metode til å finne det største hele tall til k slik at
k+e^k/10 < 100
Jeg kommer fram til at svaret skal bli 40, ved bruk av kalkulator. Men greier ikke å vise hvordan jeg løser dette med bruk av Newtons metode i Maple
Håper noen kan hjelpe
Newtons metode-Maple
Moderators: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Jeg kan rimelig godt maple syntax, hva er det du har prøvd i maple da?
Husk at du kan bruke % for å benytte deg av forrige resultat.
Begynn med å definere funksjonen dine noe allà
Deretter kan du skrive noe som
og deretter limer du inn uttrykker du får inn i en funksjon du kaller eksempelvis G(x)
Så er det bare å skrive inn et tall for eksempel 1
også skrive
og trykke på uttrykket en del ganger. Det kan og gjøres vei ei enkel løkke
med noe alla
Husk at du kan bruke % for å benytte deg av forrige resultat.
Begynn med å definere funksjonen dine noe allà
Code: Select all
P(x) := x - cos(x);
Code: Select all
x - P(x)/P'(x)
Code: Select all
G(x) = (1)
også skrive
Code: Select all
G(evalf(%))
med noe alla
Code: Select all
for i from 1 to 5 do
G(%)
end do
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Her er hva jeg har gjort, siden jeg ikke får lagt opp filen kan det se litt rotete ut. Jeg kommer fram til å finne hvor nullpunktet ligger, men forstår ikke hvordan jeg skal vise hva k kan være i heltall
> f := proc (x) options operator, arrow; x+exp((1/10)*x) end proc;
print(`output redirected...`); # input placeholder
/1 \
x -> x + exp|-- x|
\10 /
> x[0] := -2; N := 4;
> for n from 0 to N do x[n+1] := evalf(x[n]-f(x[n])/(D(f))(x[n])) end do;
print(`output redirected...`); # input placeholder
-0.908125847
-0.9127651815
-0.9127652716
-0.9127652716
-0.9127652716
> f(-.912);
print(`output redirected...`); # input placeholder
0.0008351256
> f(-.913);
print(`output redirected...`); # input placeholder
-0.0002561533
> f := proc (x) options operator, arrow; x+exp((1/10)*x) end proc;
print(`output redirected...`); # input placeholder
/1 \
x -> x + exp|-- x|
\10 /
> x[0] := -2; N := 4;
> for n from 0 to N do x[n+1] := evalf(x[n]-f(x[n])/(D(f))(x[n])) end do;
print(`output redirected...`); # input placeholder
-0.908125847
-0.9127651815
-0.9127652716
-0.9127652716
-0.9127652716
> f(-.912);
print(`output redirected...`); # input placeholder
0.0008351256
> f(-.913);
print(`output redirected...`); # input placeholder
-0.0002561533
Last edited by talentløs on 19/11-2013 17:46, edited 2 times in total.
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Virker som du tenkter rett, men bruker mye tungvinte kommandoer.
Eksempelvis å skrive
og ikke
Problemet ditt er at funksjonen din $f$ er feil, du glemmer å trekke fra $100$. Så funksjonen din burde vært
Med din syntax. Kjører du koden nå vil den konvergere mot 40.
Eksempelvis å skrive
Code: Select all
f := proc (x) options operator, arrow; x+exp((1/10)*x) end proc;
Code: Select all
f(x) := x+exp((1/10)*x) - 100
Code: Select all
f := proc (x) options operator, arrow; x+exp((1/10)*x) - 100 end proc;
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk