Diagonale Matrix/ Array Elemente mittels Formel erzeugen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Kniffte
User
Beiträge: 64
Registriert: Dienstag 27. September 2016, 11:05

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
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Antworten