Vinnaren i pepparkakshustävlingen!
2018-11-01, 16:51
  #1
Medlem
Hej. Har just precis börjat med Mathematica, och jag har nu fastnat på en specifik uppgift där jag ska räka ut den exakta lösningen till ekvationen jag postar bild på här nedanför. Jag ska också ange flyttalsapproximationer (decimalutvecklingar) av rötterna samt verifiera att det verkligen är rötter till ekvationen genom att evaluera vänsterledet i ekvationen i de uträknade rötterna.

Hittils har jag skrivit detta:
Solve[z^2 + ((2 + i)/5) z + 1/11 == 0, z]
Simplify[%]
N[%]

Svaret jag får blir svinlångt och förvirrande, så jag antar att jag har missat någonting eller att jag har strulat till ekvationen innanför Solve[]. Om ni skulle kunna ta en titt på hur jag ska gå tillväga så hade det varit mycket uppskattat.

Uppgiften I fråga: https://gyazo.com/7f3f7b708b8ca69265bf59061182d298
Citera
2018-11-01, 16:53
  #2
Medlem
Denkmittels avatar
Du måste skriva I (stor bokstav) eller [Esc]ii[Esc] istället för i för att Mathematica ska begripa att det är den imaginära enheten.
Citera
2018-11-01, 17:03
  #3
Medlem
Citat:
Ursprungligen postat av Denkmittel
Du måste skriva I (stor bokstav) eller [Esc]ii[Esc] istället för i för att Mathematica ska begripa att det är den imaginära enheten.

Jaha! Det hade jag inte en aning om. Detta är vad jag fick nu: https://gyazo.com/ae0c0505590398b212beecd76dc21a35

Vilket är mycket mer logist. Dock fortfarande osäker om det är korrekt eller inte, vilket är varför jag ska verifiera att de är rötter. Detta vet jag dock inte hur jag ska gå tillväga för att lösa.
Citera
2018-11-01, 17:06
  #4
Medlem
Denkmittels avatar
Citat:
Ursprungligen postat av hawthorns
Jaha! Det hade jag inte en aning om. Detta är vad jag fick nu: https://gyazo.com/ae0c0505590398b212beecd76dc21a35

Vilket är mycket mer logist. Dock fortfarande osäker om det är korrekt eller inte, vilket är varför jag ska verifiera att de är rötter. Detta vet jag dock inte hur jag ska gå tillväga för att lösa.
Testa att skriva
z^2 + ((2 + i)/5) z + 1/11 == 0 /. %

Vad replace-operatorn /. gör är att den ersätter variabeln z med din numeriska lösning (z->....) som sparas i %.
Citera
2018-11-01, 17:20
  #5
Medlem
Citat:
Ursprungligen postat av Denkmittel
Testa att skriva
z^2 + ((2 + i)/5) z + 1/11 == 0 /. %

Vad replace-operatorn /. gör är att den ersätter variabeln z med din numeriska lösning (z->....) som sparas i %.

Jag gjorde en alternativ lösning med variabler, och fick: https://gyazo.com/6ac21fb5d7a3a13cdcdfb52bcdb9d1c8

Vilket är rätt resultat enligt mina beräkningar. Efter jag ersatte lilla i mot stora I, och lösningarna blev mycket tydligare, så använde jag mig utav N[] för att få decimalutvecklingar av rötterna. Min fråga är dock, vad Simplify ska vara bra för i denna uppgiften? Den har ju ingen funktion över huvud taget..
Citera
2018-11-01, 17:26
  #6
Medlem
Appelskrutten123s avatar
Citat:
Ursprungligen postat av hawthorns
Jaha! Det hade jag inte en aning om. Detta är vad jag fick nu: https://gyazo.com/ae0c0505590398b212beecd76dc21a35

Vilket är mycket mer logist. Dock fortfarande osäker om det är korrekt eller inte, vilket är varför jag ska verifiera att de är rötter. Detta vet jag dock inte hur jag ska gå tillväga för att lösa.

Detta gäller som en regel för alla kommandon och konstanter i Mathematica. Dessa är reserverade för dessa konstanter. Tex konstanten e skrivs som E alternativt Exp[#]

Du kan alltså e=3 om du vill att a ska vara lika med 3, men skriver du E=2 blir det stopp.

D är också deriverat för derivata, finns säkert massor. Alla kommandon skrivs alltid med stor bokstav.
Skriver du tan[x]=4 tolka matematica det som att tan(x)=4 utan tolkar tan[x] är en variabel som väljer att ge värdet 4.

Likaså så måste du skriva a*b om du vill att Mathematica ska tolka det som talet a gånger talet b annars tolkas ab som en variabel. Fick du ingen grund i Mathmatica som pdf eller liknande?

Så alltså skriver du i så tolkar matmetica det som varibel i som du inte anget något värde på. Matmematica kommer bara retunera i tillbaka.
Citera
2018-11-01, 17:28
  #7
Medlem
Citat:
Ursprungligen postat av Appelskrutten123
Detta gäller som en regel för alla kommandon och konstanter i Mathematica. Dessa är reserverade för dessa konstanter. Tex konstanten e skrivs som E alternativt Exp[#]

Du kan alltså e=3 om du vill att a ska vara lika med 3, men skriver du E=2 blir det stopp.

D är också deriverat för derivata, finns säkert massor. Alla kommandon skrivs alltid med stor bokstav.
Skriver du tan[x]=4 tolka matematica det som att tan(x)=4 utan tolkar tan[x] är en variabel som väljer att ge värdet 4.

Likaså så måste du skriva a*b om du vill att Mathematica ska tolka det som talet a gånger talet b annars tolkas ab som en variabel. Fick du ingen grund i Mathmatica som pdf eller liknande?

Det enda vi fick var en introduktionsvideo på 30 min om hur man "got started" som vagt gick in på några begrepp och funktioner. Har dock sökt runt mycket på egen hand nu och hittade en väldigt bra länk: https://mathematica.stackexchange.co...rs/18395#18395
Citera
2018-11-01, 17:54
  #8
Medlem
Denkmittels avatar
Citat:
Ursprungligen postat av hawthorns
Jag gjorde en alternativ lösning med variabler, och fick: https://gyazo.com/6ac21fb5d7a3a13cdcdfb52bcdb9d1c8

Vilket är rätt resultat enligt mina beräkningar. Efter jag ersatte lilla i mot stora I, och lösningarna blev mycket tydligare, så använde jag mig utav N[] för att få decimalutvecklingar av rötterna. Min fråga är dock, vad Simplify ska vara bra för i denna uppgiften? Den har ju ingen funktion över huvud taget..
Som du programmerat så är Simplify inte nödvändigt. Men ett alternativt sätt att undersöka är att evaluera vänsterledet (lhs), som nedan:

lhs = z^2 + ((2 + I)/5) z + 1/11
sol = Solve[lhs==0, z]
lhs/.sol
Simplify[lhs/.sol]

Här är det svårt att veta om vänsterledet faktiskt är 0 om man inte använder Simplify.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback