hydroinformatik ii [1ex] ''prozesssimulation und ...2centre for advanced water research {...

27
BHYWI-08: Semester-Fahrplan 2019 Vorlesungen 1 / 27

Upload: others

Post on 26-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

BHYWI-08: Semester-Fahrplan 2019Vorlesungen

1 / 27

Page 2: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Hydroinformatik II

”Prozesssimulation und Systemanalyse”

BHYWI-08-05 @ 2019

Ubung Funktionsrechner E2-for-python

Olaf Kolditz

*Helmholtz Centre for Environmental Research – UFZ

1Technische Universitat Dresden – TUDD

2Centre for Advanced Water Research – CAWR

17.05.2019 - Dresden

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 2 / 27

Page 3: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Konzept

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 3 / 27

Page 4: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Fahrplan fur heute

I Nichtlineare Loser (Abschluss letzte Vorlesung)

I Ubung: BHYWI-08-02-E: Funktionsrechner

I Ergebnisse

I Qt console

I Python

I BHYWI-08-02-E-for-python

I Finite-Differenzen-Methode (FDM) (Neue Vorlesung)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 4 / 27

Page 5: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Naherungsverfahren

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 5 / 27

Page 6: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losungsverfahren

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 6 / 27

Page 7: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen

In this section we present a description of selected iterativemethods that are commonly applied to solve non-linear problems.

I Picard method (fixpoint iteration)

I Newton methods

I Cord slope method

I Dynamic relaxation method

All methods call for an initial guess of the solution to start buteach algorithm uses a different scheme to produce a new (andhopefully closer) estimate to the exact solution. The general ideais to construct a sequence of linear sub-problems which can besolved with ordinary linear solver

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 7 / 27

Page 8: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen

The general algorithm of the Picard method can be described asfollows. We consider a non-linear equation written in the form

A(x) x− b(x) = 0 (1)

We start the iteration by assuming an initial guess x0 and we usethis to evaluate the system matrix A(x0) as well as theright-hand-side vector b(x0). Thus this equation becomes linearand it can be solved for the next set of x values.

A(xk−1) xk − b(xk−1) = 0

xk = A−1(xk−1)b(xk−1) (2)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 8 / 27

Page 9: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen

Repeating this procedure we obtain a sequence of successivesolutions for xk . During each iteration loop the system matrix andthe right-hand-side vector must be updated with the previoussolution. The iteration is performed until satisfactory convergenceis achieved. A typical criterion is e.g.

ε ≥ ‖ xk − xk−1 ‖‖ xk ‖

(3)

where ε is a user-defined tolerance criterion. For the simple case ofa non-linear equation x = b(x) (i.e. A = I), the iteration procedureis graphically illustrated in Fig. 1. To achieve convergence of thescheme it has to be guaranteed that the iteration error

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 9 / 27

Page 10: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen

ek =‖ xk − x ‖< C ‖ xk−1 − x ‖p= ek−1 (4)

or, alternatively, the distance between successive solutions willreduce

‖ xk+1 − xk ‖<‖ xk − xk−1 ‖p (5)

where p denotes the convergence order of the iteration scheme. Itcan be shown that the iteration error of the Picard methoddecreases linearly with the error at the previous iteration step.Therefore, the Picard method is a first-order convergence scheme.

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 10 / 27

Page 11: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen

y = x

y = b(x)

x1x2 x3x4 x5x6

y

x

Figure: Graphical illustration of the Picard iteration method

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 11 / 27

Page 12: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen - Newton-Verfahren

In order to improve the convergence order of non-linear iterationmethods, i.e. derive higher-order schemes, the Newton-Raphsonmethod can be employed. To describe this approach, we consideronce again the non-linear equation

R(x) = A(x) x− b(x) = 0 (6)

Assuming that the residuum R(x) is a continuous function, we candevelop a Taylor series expansion about any known approximatesolution xk .

Rk+1 = Rk +

[∂R

∂x

]k

∆xk+1 + 0(∆x2k+1) (7)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 12 / 27

Page 13: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen - Newton-Verfahren

Second- and higher-order terms are truncated in the following. Theterm ∂R/∂x represents tangential slopes of R with respect to thesolution vector and it is denoted as the Jacobian matrix J. As afirst approximation we can assume Rk+1 = 0. Then the solutionincrement can be immediately calculated from the remaining termsin equation (7).

∆xk+1 = −J−1k Rk (8)

where we have to cope with the inverse of the Jacobian. Theiterative approximation of the solution vector can be computednow from the increment.

xk+1 = xk + ∆xk+1 (9)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 13 / 27

Page 14: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen - Newton-Verfahren

x1x2x3x

y

x

Figure: Graphical illustration of the Newton-Raphson iteration method

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 14 / 27

Page 15: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen - Newton-Verfahren

Once an initial guess is provided, successive solutions of xk+1 canbe determined using equations (8) and (9) (Fig. 2). The Jacobianhas to re-evaluated and inversed at every iteration step, which is avery time-consuming procedure in fact. At the expense of slowerconvergence, the initial Jacobian J0 may be kept and used in thesubsequent iterations. Alternatively, the Jacobian can be updatedin certain iteration intervals. This procedure is denoted as modifiedor ’initial slope’ Newton method (Fig. 3).The convergence velocity of the Newton-Raphson method issecond-order. It is characterized by the expression.

‖ xk+1 − x ‖≤ C ‖ xk − x ‖2 (10)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 15 / 27

Page 16: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Losen nichtlinearer Gleichungen - Newton-Verfahren

x1x2x3x

R(x)

xx4x5

Figure: Graphical illustration of the modified Newton-Raphson iterationmethod

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 16 / 27

Page 17: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Ubung: BHYWI-08-02-E:Funktionsrechner

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 17 / 27

Page 18: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Ubung: BHYWI-08-02-E: Funktionsrechner

Parabolic equation

∂ψ

∂t= α

∂2ψ

∂x2(11)

ψ(t, x) = sin(πx)exp(−απ2t) (12)

ψ(t, x) = sin(√παx)exp(−πt) (13)

ψ(t, x) = sin(π/√αx)exp(−π2t) (14)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 18 / 27

Page 19: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Hausaufgabe: BHYWI-08-02-E: FunktionsrechnerErgebnisse (8): Betreff: HYDROINFORMATIK

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 19 / 27

Page 20: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Entwicklungsumgebungen

I Compiler: g++ (console), CLI - command line interface),cyqwin, mingw, ...

I IDE: Qt, ...(GUI - graphical user interface), ”all-in-one”, ...

I Scriptsprachen: Python, ... (flexibility)

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 20 / 27

Page 21: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Hausaufgabe: BHYWI-08-02-E: Funktionsrechnerohne Qt ... (Quelltext auf der Lehre-Webseite)

#include <cmath>

#include <fstream>

#define PI 3.14159265358979323846

int main(int argc, char *argv[])

{

//1-Definitionen

int numPoints = 1000;

double x,y,alpha=1.,t=0.01;

std::ofstream out_file;

out_file.open("out.csv");

//2-Berechnung

//y = sin(pi*x) * exp(-alpha*t^2)

for (int i = 0; i < numPoints+1; ++i)

{

x = double(i)/double(numPoints);

//y=sin(PI*x) * exp(-alpha*t*t);

//y=sin(sqrt(PI*alpha)*x) * exp(-PI*t);

//y=sin(PI/sqrt(alpha)*x) * exp(-PI*PI*t);

y=sin(PI*x) * exp(-alpha*PI*PI*t);

out_file << x << "," << y << std::endl;

}

//3-Ausgabe

}

//HW1 Losung: y=sin(sqrt(pi*alpha)*x) * exp(-pi*t) plotten

//HW2 Losung: y=sin(pi/sqrt(alpha)*x) * exp(-pi*pi*t) plotten

//HW3 Losung: y=sin(pi*x) * exp(-alpha*pi*pi*t) plotten

//HW4 Losungen vergleichen

//HW5 Verschiedene Zeiten (aus Eingabedatei) lesen und rechnen

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 21 / 27

Page 22: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Qt von der Konsole

compiler console

go to directory

qmake -project

qmake

mingw32-make

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 22 / 27

Page 23: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Python

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 23 / 27

Page 24: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Python

import matplotlib.pyplot as plt

import csv

x = []

y = []

with open(’out.csv’,’r’) as csvfile:

plots = csv.reader(csvfile, delimiter=’,’)

for row in plots:

x.append(float(row[0]))

y.append(float(row[1]))

plt.plot(x,y, label=’Data loaded from file: out.csv’)

plt.xlabel(’x’)

plt.ylabel(’y’)

plt.title(’Hydroinformatics II\nExercise BHYWI-08-02-for-python’)

plt.legend()

plt.savefig("test1.png")

plt.show()

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 24 / 27

Page 25: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Hausaufgabe: BHYWI-08-02-E: Funktionsrechnermit Python ...

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 25 / 27

Page 26: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

Batch

echo Compilation

g++ main.cpp

echo Execution

a.exe

echo Ploting

data_from_file.py

echo End

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 26 / 27

Page 27: Hydroinformatik II [1ex] ''Prozesssimulation und ...2Centre for Advanced Water Research { CAWR 17.05.2019 - Dresden ... fur heute I Nichtlineare L oser (Abschluss letzte Vorlesung)

BHYWI-08: Semester-FahrplanUbungen

https://github.com/envinf/Hydroinformatik-II

BHYWI-08-05 @ 2019 - Ubung Funktionsrechner E2-for-python // 17.05.2019 27 / 27