Seite 1 von 1

Diagonale Matrix/ Array Elemente mittels Formel erzeugen

Verfasst: Montag 31. Oktober 2016, 14:18
von Kniffte
Hallo Zusammen,

ich benötige mal wieder eure Hilfe.
Ich habe ein Gleichungssystem und ein Teil des Systems sieht wie folgt aus:

Code: Alles auswählen

1	0		    0		    ...
0	2(h1+h2)	h2		   0		 ...
0	h2		   2(h2+h3)	h3		0	  ...
0	0		    h3		   ...
...	
ich habe einen Array mit den Werten von h1 bis hn und möchte nun einen Array oder Matrix erzeugen in oben aufgeführter Form.
Wie gehe ich da am besten vor? Bleibe ich bei Numpy oder muss ich Sympy dafür verwenden?
Gibt es viell eine ähnliche Funktion zu numpy.eye, die Einabewerte in Form von Berechnungen zulässt?

Gruß Seb

Re: Diagonale Matrix/ Array Elemente mittels Formel erzeugen

Verfasst: Montag 31. Oktober 2016, 14:26
von Sirius3
@Kniffte: numpy.diag ist Dein Freund:

Code: Alles auswählen

matrix = numpy.diag(h[1:-1], k=-1) + numpy.diag(2*(h[:-1]+h[:1]), k=0) + numpy.diag(h[1:-1], k=1)
Um die Ränder mußt Du Dich noch selbst kümmern, denn die sehen etwas seltsam aus.