7 svar
70 visningar
ioem_ 122
Postad: 13 dec 2023 11:14

Tabell med hur iterationer konvergerar mot en lösning

Hej! 

Jag sitter med en uppgift där jag med Newtons metod ska 1. lösa ett ekvationsstystem 2. rita snörets form 3. Göra en tabell med hur iterationerna konvergerar mot lösningen. 

Punkt 1 och 2 är färdiga men jag fastnar på hur man ska få in konvergensen och så i en tabell? Jag har provat allt men får inget att fungera. Vi har fått fram värdena från ekvationssystemet till x = 44.8289, y = 0.187, z = -32.6239.

 

JÄTTEtacksam för hjälp!!!!

Hondel 1377
Postad: 13 dec 2023 11:32

Kanske missförstår dig, men jag skulle gjort såhär:

Skapa tre vektorer/listor x_vec, y_vec, z_vec, och i varje iteration sparar du nuvarande lösning. När algoritmen är klar plottar du exempelvis x_vec med iteration på x-axel och värdet i x_vec på y-axeln. Du kan också lägga till en horisontell linje för det sista (eller exakta om du råkar veta det) värdet så det blir tydligt hur algoritmen kommer närmare detta värde

ioem_ 122
Postad: 13 dec 2023 11:57

Tack, ska prova detta men det kommer isåfall bara vara 1 värde i x_vec, y_vec, z_vec eller? Och hur skulle jag få in detta i en tabell?

Hondel 1377
Postad: 13 dec 2023 11:59

Nej, du lägger till ett nytt värde i varje iteration. Så när algoritmen är klar består x_vec av värden på x från varje iteration. 

Du behöver inte få in det i en tabell, du plottar varje vektor som en linje-graf 

Hondel 1377
Postad: 13 dec 2023 12:01

Sorry, ser nu att frågan säger att du ska göra en tabell (jag tycker nog en plot spontant kändes trevligare, men men)

När du har sparat alla värden kan du ju göra en tabell med tre kolumner (x,y,z) och varje rad i tabellen är en iteration

ioem_ 122
Postad: 13 dec 2023 12:29

Förlåt, är verkligen nybörjare på det här men hur skulle jag få in iterationerna i 3 olika vektorer? Är det i en while slinga?

ioem_ 122
Postad: 13 dec 2023 13:56

Skulle jag kunna skicka koden i meddelande, så kanske det är lättare att förstå lite vad jag gjort? 

Hondel 1377
Postad: 13 dec 2023 14:03

Du har väl en loop? I den loopen, innan du börjar nästa iteration, sparar du din nuvarande lösning.

Du kan skriva din kod här

Svara
Close