Willkommen in der Webstatt Zum Webstatt Blog und Stories
nuit nuit am 21.10.10 07:32

aufgabe: lineares GLS mit Ax=b, wobei A als obere Dreiecksmatrix vorliegt...
d.h. du kannst es zurückreferenzieren..

hab die aufgabe schon gelöst...und der code ist echt nett...aber da muss es noch was schöneres geben, ohne 2 schleifen..das nervt ein bisschen ^^ auch wenn die komplexität ganz in ordnung ist :)

A=[3,-5,1,0,0,0.5,2,-9,0,0,-1,3,0,0,0,9]
b=[5,22,-8,-18]
x=b
n=4

for i in range(n-1,-1,-1):
for j in range(n-1,i,-1):
x[i] -= A[i*n+j]*x[j]
x[i] /= A[i*n+i]

print x


es ist eigentlich ziemlich straightforward und genau das ist das problem...die innere schleife, ich hab sie schon auf das nötigste runtergebrochen und der speicherverbrauch ist auch minimal, aber trotzdem hab ich noch unnötige berechnungen drin...
wenn ihr euch fragt, warum ich das in einem eindimensionalem dictionary gemacht hab...war so in der aufgabenstellung ^^

hat jemand dafür noch nen schöneren algo? geht wirklich nur um den letzten schritt: dreiecksmatrix lösen...alles vorher, die dahin zu bringen ist mir eigentlich wurscht :)

netcup.de Warum gibt es hier Werbung?
Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt