Mathematik für Ingenieure mit Python

Mathematische Grundlagen
www.grund-wissen.de/mathematik
WinPython
Alles was man für Mathematik mit Python unter Windows braucht.
winpython.sourceforge.net
Download WinPython

Python-Code
vollständiger Python-Code: fachwerk_2d_a2_solve.py
Was hat's gebracht?
Wir haben gesehn, wie mit numpy.linalg.solve ein Gleichungssystem gelöst werden kann.
Wie geht's weiter?
Als nächstes wird das Gleichungssystem mit Numpy aufgestellt.
Fragen & Antworten
Python Forum:
Mathematik für Ingenieure mit Python: Fachwerk

Einfaches zweidimensionales Fachwerk, mit Numpy gerechnet

Das Gleichungssystem als Matrix-Vektor-Produkt

Das Gleichungssystem zur Berechnung der Stabkräfte und der Lagerkräfte kann auch als Matrix-Vektor-Produkt geschrieben werden:
Matrix-Vektor-Produkt

Das Gleichungssystem mit Python und Numpy lösen

import numpy as np

alpha = np.arctan(3./4.)
beta  = np.arctan(2./3.)
gamma = np.arctan(4./2.)

#Fuer die Ausgabe und als Doku: welcher Index gehoert zu welcher Groesse?
xNames = ['S1','S2','S3','S4','S5','S6','S7','S8','S9','F_Ex','F_Ey','F_Fy']

# Das Gleichungssystem: A*x = b
# Fast alle Koeffizienten des Gleichungssystems sind 0,
# deshalb werden A und b mit 0 vorbelegt.
A = np.zeros((12,12), dtype=np.float64)
b = np.zeros((12,),   dtype=np.float64)

A[ 0, 0] = -1
A[ 0, 1] = -np.cos(alpha)
A[ 1, 1] = -np.sin(alpha)
A[ 2, 0] =  1
A[ 2, 3] = -np.sin(beta)
A[ 3, 2] = -1
A[ 3, 3] = -np.cos(beta)
A[ 4, 1] =  np.cos(alpha)  
A[ 4, 4] = -1
A[ 5, 1] =  np.sin(alpha)
A[ 5, 2] =  1
A[ 5, 5] = -1
A[ 6, 3] =  np.sin(beta)
A[ 6, 4] =  1
A[ 6, 6] =  np.cos(gamma)
A[ 7, 3] =  np.cos(beta)
A[ 7, 6] =  np.sin(gamma)
A[ 7, 7] = -1
A[ 8, 8] = -1
A[ 8, 9] =  1
A[ 9, 5] =  1
A[ 9, 6] =  np.sin(gamma)
A[ 9,10] =  1
A[10, 8] = -1
A[11, 7] =  1
A[11,11] =  1

b[1] = 1

# Loesen des Gleichungssystems mit Numpy
x = np.linalg.solve(A, b)

# Ausgabe der Loesung
for xName, xValue in zip(xNames, x):
    print('%4s = % f' % (xName, xValue))