Hei! Har noen problemer med å forstå meg helt på Do funksjoner i mathematica å lurer på om noen her kunne hjulpet meg. Oppgaven lyder som følger:
Skriv en funksjon intsum[...] i Mathematica som summerer alle elementer i en liste av reelle tall som ligger i et angitt åpent intervall. Syntaksen skal være intsum [liste,a,b] med liste en liste av reelle tall og a og b reelle tall med a<b. Resultatet skal bli summen av de elementene x i liste som oppfyller a<x<b. Hivs ingen elementer oppfyller betingelsen, skal resultatet bli null. Bruk intsum[{-3,5,-1,2,1,4},-2,3]=0 til å teste funksjonen du skrev.
Jeg tror jeg er inne på noe, men ser at det ikke er noe som helt stemmer med tanke på at mathematica ikke gir meg det ønskelige resultatet ut. Her er hva jeg har kommet fram til:
sum[liste_] :=
(sum = 0;
Do[sum = If[liste[[x]], {-a < x < b}, sum + liste[[x]], sum], {x,
1, Length[liste]}]; sum)
Har en magefølelse på at det er hvor jeg har skrevet "{-a < x < b}" feilen ligger, men ser ikke helt hva jeg ellers skal skrive.
Tusen takk for all hjelp!
Matematica
Moderators: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa
Hei!
Sliter fortsatt med denne oppgaven og hadde virkelig satt pris på om noen kunne hjelp meg. Er godt mulig at man ikke skal bruke Do funksjonen i det hele tatt, så om noen har en annen måte å løse oppgaven på så hadde jeg virkelig satt pris på hjelp!
Sliter fortsatt med denne oppgaven og hadde virkelig satt pris på om noen kunne hjelp meg. Er godt mulig at man ikke skal bruke Do funksjonen i det hele tatt, så om noen har en annen måte å løse oppgaven på så hadde jeg virkelig satt pris på hjelp!
Da var jeg tilbake igjen på denne oppgaven. Har nå funnet ut at jeg ønsker å bruke Total funksjonen i mathematicha. Jeg må finne en måte og få pcen til å forstå at jeg ønsker å ta Total av de elementer i en liste som ligger imellom a<x<b, men det er dette som byr på problemer. Takk for hjelp.
Skulle tru at Do funker, men bør det ikke være "{a < x < b}" istedenfor "{-a < x < b}" ?riquelme8 wrote:Hei! Har noen problemer med å forstå meg helt på Do funksjoner i mathematica å lurer på om noen her kunne hjulpet meg. Oppgaven lyder som følger:
Skriv en funksjon intsum[...] i Mathematica som summerer alle elementer i en liste av reelle tall som ligger i et angitt åpent intervall. Syntaksen skal være intsum [liste,a,b] med liste en liste av reelle tall og a og b reelle tall med a<b. Resultatet skal bli summen av de elementene x i liste som oppfyller a<x<b. Hivs ingen elementer oppfyller betingelsen, skal resultatet bli null. Bruk intsum[{-3,5,-1,2,1,4},-2,3]=0 til å teste funksjonen du skrev.
Jeg tror jeg er inne på noe, men ser at det ikke er noe som helt stemmer med tanke på at mathematica ikke gir meg det ønskelige resultatet ut. Her er hva jeg har kommet fram til:
sum[liste_] :=
(sum = 0;
Do[sum = If[liste[[x]], {-a < x < b}, sum + liste[[x]], sum], {x,
1, Length[liste]}]; sum)
Har en magefølelse på at det er hvor jeg har skrevet "{-a < x < b}" feilen ligger, men ser ikke helt hva jeg ellers skal skrive.
Tusen takk for all hjelp!
Klarte oppgaven nå, var tidenes mest åpenbare feil.. Slik skulle det skrives:
plussum[liste_] := (sum = 0;
Do[sum = If[-2 < liste[[k]] < 3 , sum + liste[[k]], sum], {k, 1,
Length[liste]}]; sum), var betingelsen til If som var helt gal. For øvrig skulle svaret bli 2 og ikke 0 :p
plussum[liste_] := (sum = 0;
Do[sum = If[-2 < liste[[k]] < 3 , sum + liste[[k]], sum], {k, 1,
Length[liste]}]; sum), var betingelsen til If som var helt gal. For øvrig skulle svaret bli 2 og ikke 0 :p
Flotte greier!riquelme8 wrote:Klarte oppgaven nå, var tidenes mest åpenbare feil.. Slik skulle det skrives:
plussum[liste_] := (sum = 0;
Do[sum = If[-2 < liste[[k]] < 3 , sum + liste[[k]], sum], {k, 1,
Length[liste]}]; sum), var betingelsen til If som var helt gal. For øvrig skulle svaret bli 2 og ikke 0 :p
Er ikke familiær med Matematica selv, men det er jo typisk at en bagatell skaper forvirring innen programmering.