Sie sind auf Seite 1von 4

29.11.

21, 10:50 serie03 - Jupyter Notebook

Lösungen Serie 3

1.
Formulieren Sie die Bedingungen der Umschulungsaufgabe aus der ersten Aufgabenserie
als lineares Gleichungssystem
(in Matrixform) und stellen Sie die Lösungsmenge
dar!

Das LGS hat 7 Zeilen und 12 Unbekannte, wir nummerieren die 𝑥𝑖,𝑗 zeilenweise
und erhalten 𝑥𝑘 , 𝑘 = 1,2,…,11,12
Die erweiterte Koeffizietenmatrix des Systems hat folgende Form:

1 1 1 1 0 0 0 0 0 0 0 0 60

0 0 0 0 1 1 1 1 0 0 0 0 15

0 0 0 0 0 0 0 0 1 1 1 1 25

1 0 0 0 1 0 0 0 1 0 0 0 20

0 1 0 0 0 1 0 0 0 1 0 0 30

0 0 1 0 0 0 1 0 0 0 1 0 40

0 0 0 1 0 0 0 1 0 0 0 1 10

der Rang der Matrix ist 6, jede beliebige Zeile kann entfallen, es bleiben 6 freie Parameter
(12 Unbekannte, 6 Bedingungen)

es erweist sich als günstig, Basislösungen zu bestimmen, die jeweils 6 Komponenten gleich Null haben, die übrigen
nichtnegativ

dann ist jede nichtnegatibe Lösung Konvexkombination der Basislösungen (Eckpunkte)

die gewöhnliche Lösungsmethode ist nicht besonders hilfreich - wir kommen darauf zurück

In [1]:  1 M=[1 1 1 1 0 0 0 0 0 0 0 0 60
2 0 0 0 0 1 1 1 1 0 0 0 0 15
3 0 0 0 0 0 0 0 0 1 1 1 1 25
4 1 0 0 0 1 0 0 0 1 0 0 0 20
5 0 1 0 0 0 1 0 0 0 1 0 0 30
6 0 0 1 0 0 0 1 0 0 0 1 0 40
7 0 0 0 1 0 0 0 1 0 0 0 1 10];
8 A=M[1:end-1,1:end-1]; b=M[1:end-1,end]
9 A\b

Out[1]: 12-element Array{Float64,1}:

13.333333333333332

16.666666666666664

20.0

10.000000000000004

2.083333333333334

5.41666666666667

8.749999999999996

-1.2499999999999964

4.583333333333325

7.916666666666661

11.249999999999996

1.2499999999999984

localhost:8889/notebooks/kvl/lec/wimamax/exercises/2021/solutions/serie3/serie03.ipynb 1/4
29.11.21, 10:50 serie03 - Jupyter Notebook

In [2]:  1 using LinearAlgebra;


2 nullspace(A)

Out[2]: 12×6 Array{Float64,2}:

0.432638 0.269846 -0.331396 0.0827495 0.316009 0.153216

-0.371828 0.0786338 0.308564 -0.141638 0.0382351 0.488697

-0.15246 0.0599215 -0.310476 -0.201568 -0.502163 -0.289781

0.0916507 -0.408401 0.333307 0.260456 0.147919 -0.352133

-0.499555 -0.371088 -0.185766 0.263768 -0.0784471 0.05002

0.267955 -0.23579 -0.168539 -0.458539 0.192457 -0.311288

0.426828 -0.0636417 0.338099 0.212891 -0.144484 0.365046

-0.195228 0.67052 0.016207 -0.0181206 0.0304747 -0.103778

0.0669167 0.101242 0.517163 -0.346518 -0.237561 -0.203236

0.103874 0.157156 -0.140025 0.600177 -0.230692 -0.177409

-0.274367 0.00372021 -0.0276228 -0.0113235 0.646647 -0.0752651

0.103577 -0.262118 -0.349514 -0.242335 -0.178394 0.455911

das Lineare Gleichungssystem ist unterbestimmt, wir können ausgewählte Variable nullsetzen - und so ein
reguläres 6 mal
6 LGS aufstellen

In [3]:  1 s=[1,2,3,7,11,12]
2 A[:,s]\b

Out[3]: 6-element Array{Float64,1}:

20.0

30.0

10.0

15.0

15.0

10.0

wichtig: die Untermatrix muss regulär sein, und die Lösung nichtnegativ,
Probieren ist keine gute Option - zu viele
Möglichkeiten!

2.
a) Bestimme die Eigenwerte der Matrizen 𝐴 und 𝐵
In [4]:  1 A=[4 2
2 5 1]

Out[4]: 2×2 Array{Int64,2}:

4 2

5 1

In [5]:  1 using LinearAlgebra;

In [6]:  1 lamA,VA=eigen(A)

Out[6]: Eigen{Float64,Float64,Array{Float64,2},Array{Float64,1}}

values:

2-element Array{Float64,1}:

-1.0

6.0

vectors:

2×2 Array{Float64,2}:

-0.371391 0.707107

0.928477 0.707107

per Hand muss man die Determinante von 𝐴 − 𝜆𝐼 ausrechnen und Null setzen
det ( 4 −5 𝜆 1 −2 𝜆 ) = 𝜆2 − 5𝜆 + 4 − 10 , 𝜆1,2 = 2.5 ± √⎯6.25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 6⎯ = 2.5 ± 3.5
Eigenvektor zu 𝜆1 = −1

Beide Zeilen des Systems fordern 5𝑣 1 + 2𝑣 2 = 0 , 𝑣 = (2,−5) 𝑇 erfüllt die Bedingung

localhost:8889/notebooks/kvl/lec/wimamax/exercises/2021/solutions/serie3/serie03.ipynb 2/4
29.11.21, 10:50 serie03 - Jupyter Notebook

𝜆2 = 6
Eigenvektor zu

−2𝑣1 + 2𝑣2 = 0, wird erfüllt von (1,1)𝑇


(die zweite Gleichung ist linear abhängig von der ersten, die Lösung hat einen
freien Parameter,

wir können beliebig wählen, Hauptsache nicht alles gleich Null)

der Befehl eigen liefert immer normierte Vektoren, das ist hier nicht gefordert

In [7]:  1 B=[2 0 1
2 0 2 0
3 1 0 2]

Out[7]: 3×3 Array{Int64,2}:

2 0 1

0 2 0

1 0 2

𝐵
für die 3 x 3 Matrix ist das Aufstellen des Polynoms und die Suche der
Nullstellen auch einfach - wir begnügen uns
trotzdem mit der Computeralgebralösung

In [8]:  1 lamB,VB=eigen(B)

Out[8]: Eigen{Float64,Float64,Array{Float64,2},Array{Float64,1}}

values:

3-element Array{Float64,1}:

1.0000000000000004

2.0

3.0

vectors:

3×3 Array{Float64,2}:

-0.707107 0.0 0.707107

0.0 -1.0 0.0

0.707107 0.0 0.707107

In [9]:  1 VB*B*VB'

Out[9]: 3×3 Array{Float64,2}:

1.0 0.0 -3.33067e-16

0.0 2.0 0.0

-4.44089e-16 0.0 3.0

die Basisvektoren sind gerade die gefundenen Eigenvektoren (Spalten von 𝑉𝐵 )


3.

a) wählen beliebigen Startvektor 𝑣 und bilden ihn immer wieder ab mit 𝐵


anschließend stutzen wir ihn auf Länge 1 (normieren)

In [10]:  1 v=[1,1,1];
2 for k=1:12
3 v=B*v/norm(B*v);
4 println(v')
5 end

[0.6396021490668313 0.42640143271122083 0.6396021490668313]

[0.6745785200962753 0.2998126755983445 0.6745785200962753]


[0.6920802213988716 0.20506080634040635 0.6920802213988716]

[0.7003085410186788 0.13833255131233158 0.7003085410186788]

[0.7040609955550466 0.09271585126650818 0.7040609955550466]

[0.70574822722872 0.06195869210238418 0.70574822722872]

[0.7065020115965162 0.04134991197272704 0.7065020115965162]

[0.7068378030333674 0.02757971004062521 0.7068378030333674]

[0.7069871974368551 0.018390359451692817 0.7069871974368551]

[0.707053625362363 0.01226139159631932 0.707053625362363]

[0.7070831548957628 0.008174602455737449 0.7070831548957628]

[0.7070962803204832 0.00544983613268961 0.7070962803204832]

localhost:8889/notebooks/kvl/lec/wimamax/exercises/2021/solutions/serie3/serie03.ipynb 3/4
29.11.21, 10:50 serie03 - Jupyter Notebook

man erkennt Konvergenz gegen einen Vektor mit identischen Komponenten 1 und 3,
die mittlere verkümmert

In [11]:  1 (v'B*v)/(v'*v)

Out[11]: 2.999970299286127

projiziert man das Bild von 𝑣 und 𝑣 selbst auf die Richtung von 𝑣,
so ist das Bild ca. 3 mal länger - der größte Eigenwert ist
3

𝐵𝑣 zu berechnen,
lösen wir jeweils ein LGS der Form 𝐵𝑣𝑛𝑒𝑢 = 𝑣
b) den kleinsten Eigenwert finden wir ähnlich, nur statt

hierzu dient in der (Computer)Praxis meist der Backslash (∖ )

In [12]:  1 v=[1,2,3];
2 for k=1:12
3 v=B\v/norm(B\v);
4 println(v')
5 end

[-0.16903085094570333 0.50709255283711 0.8451542547285166]


[-0.5074996035160897 0.3262497451174862 0.7974993769538551]

[-0.6430236616162639 0.17361638863639128 0.7459074474748661]

[-0.6867614099005023 0.08801847183851375 0.7215341395157175]

[-0.7005794412044868 0.04414958615474334 0.7122073157472998]

[-0.704992096199761 0.022091610992504552 0.70887100732053]


[-0.706416725443584 0.011047864549092666 0.707709936840277]

[-0.706880413810011 0.005524187179599933 0.7073115041675715]

[-0.7070322309352642 0.0027621253130991675 0.7071759293715093]

[-0.70708215662434 0.0013810666141256733 0.7071300562403493]

[-0.707098629279099 0.0006905338013224101 0.707114595829197]

[-0.7071040779425365 0.0003452669624192849 0.7071094001268544]

In [13]:  1 (v'B*v)/(v'*v)

Out[13]: 1.000000119237601

alles andere wie gehabt - der Eigenwert ist 1

das Ergebnis kann von der Wahl des Startvektors abhängen!

4.

offenbar ist𝑦″ (𝑥) = 𝜆𝑦(𝑥), wenn man 𝑦(𝑥) = 𝑓(𝑥) = 𝑐exp(√⎯⎯𝜆𝑥) wählt (𝜆 ≥ 0, 𝑐 ≠ 0 =konst)
die e-Funktion wird aber nicht 0 bei 𝑥 = 1
⎯⎯
besser sieht es aus mit 𝑓(𝑥) = 𝑐cos(√ 𝜆𝑥) , diese Funktion erfüllt
𝑦″ = −𝜆𝑦(𝑥) , und sie hat Nullstellen - leider nicht bei
𝑥=0
⎯⎯ ⎯⎯
dies erreichen wir mit 𝑦(𝑥) = 𝑐sin(√ 𝜆𝑥) , hier haben wir
Nullstellen bei 𝑥 = 0 und 𝑥 = 1, wenn √ 𝜆 = 𝑘𝜋 mit 𝑘 ∈ ℕ

somit sind Eigenwerte 𝜆 der Form −𝑘2 𝜋 2 , die Eigenvektoren dazu sind die
Funktionen sin(𝑘𝜋𝑥)

In [ ]:  1 ​

localhost:8889/notebooks/kvl/lec/wimamax/exercises/2021/solutions/serie3/serie03.ipynb 4/4

Das könnte Ihnen auch gefallen