Citat:
Ursprungligen postat av
Shawn92
Tjena!
Som rubriken lyder vill jag gärna veta hur man löser uppgifter där man tar fram L, U och P matrisen och även hur man bör tänka på en uppgift som har med komplexitet att göra. Läser kursen beräkningsvetenskap och fick nyligen veta att jag blev underkänd och då var detta en av uppgifterna som bidrog till att jag blev underkänd. Har bifogat själva uppgiftsfrågan och min lösning (och lärarnas lösning på komplexitet).
Uppgiftfråga för LUP-uppgift och komplexitet samt lösning för samtliga uppgifter.
http://imgur.com/ruVwvr1,xunkRHX
min lösning för LUP uppgiften:
http://imgur.com/ruVwvr1,xunkRHX#1
Uppskattar hjälp från någon kunnig som kan hjälpa mig med tankesättet. Omtenta på lördag så sitter och nöter på gamla tentor atm.
/Shahin
På deluppgift a) så har du gjort fel i elimineringen. På raden där det står ett rött "?" så har du av din notation att döma subtraherat 1 gånger rad 1 från rad 2, men bortsett från effekten detta skulle ha fått på det första elementet på rad 2. Du hade ju 0 i första kolumnen på rad 2 och subtraherar 1 i första kolumnen till följd av att du subtraherar 1 gånger rad 1. Det skulle alltså leda till att du skulle få -1 i första kolumnen på rad 2. Det du skulle ha gjort istället är att med hjälp av rad 2 eliminera siffran i andra kolumnen på rad 3.
Ett annat fel du gör är att du normerar rad 1 i U-matrisen genom att dividera med 3. Det ska du inte göra vid LU-faktorisering (eller om du gör det så måste du justera L-matrisen motsvarande för att produkten av L och U ska bli den ursprungliga matrisen A).
På deluppgift b) så är det ju ett rätt enkelt fel du gjort. Du har korrekt skrivit ut komplexiteten som C*n³ men sedan har du inte använt det för att uppskatta tiden det skulle ta för en matris med dubbelt så många rader och kolumner. Att antalet rader och kolumner dubblas betyder alltså att n dubblas, och eftersom n förekommer i potensen n³ så blir tidsåtgången därför 2³ = 8 gånger så lång.
Sättet du bör tänka på är att du vet att C*n³ = 11,5 sekunder och du vill veta hur mycket längre C*(2n)³ tar. C*(2n)³ = C*8n³ = 8*C*n³, vilket alltså blir 8*11,5 sekunder eller alltså 8 gånger så lång tid som för den ursprungliga matrisstorleken.