Webstatt.org - Community seit 2006 - 2012 (2024?)

lineares gls lösen

Avatar user-271
21.10.2010 05: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 lächeln

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 lächeln

#!/bin/bash
traurig){ neutral:& };: