• Keine Ergebnisse gefunden

3. ¨Ubungsblatt zur Einf. in das wiss.–techn. Programmieren mit Matlab Pr¨asenz¨ubung: 1) Matrix–Ausdr¨ucke:

N/A
N/A
Protected

Academic year: 2022

Aktie "3. ¨Ubungsblatt zur Einf. in das wiss.–techn. Programmieren mit Matlab Pr¨asenz¨ubung: 1) Matrix–Ausdr¨ucke:"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Universit¨at Darmstadt Fachbereich Mathematik

Dr. H. Grothe

SS 2009 25. 9. 2009

3. ¨ Ubungsblatt zur Einf. in das wiss.–techn. Programmieren mit Matlab

Pr¨asenz¨ubung:

1) Matrix–Ausdr¨ucke: Geben Sie bei den folgenden Ausdr¨ucken an, ob es sich um zul¨assige (Ergebnis!) oder unzul¨assige (Begr¨undung!) Ausdr¨ucke handelt.

Ber¨ucksichtigen Sie ggf. die MATLAB-Version.

zul¨assig unzul¨assig Ergebnis/Begr¨undung det(1:2)

det(1:2’*1:2) det((1:2)’*(1:2)) abs(-2:2)

(1:2)’*(1:2)<1:4 (1:2)’*(1:2)<(1:4)

2) Korrigieren Sie, soweit n¨otig, die angegebenen Formen der Wiederholungsan- weisung und ersetzen Sie anschließend die Programmst¨ucke durch eine ¨aquiva- lente MATLAB-Anweisung.

a) a = 1:100;

s = 0;

for k = 1:-1:100 s = s + a(k);

end

b) n = (1:100) * 0;

a = (1:5)’ * (1:5);

prod = 1;

for k = 1:5

for n(k) = k:2:100

prod = prod * a(k, n(k));

end end

1

(2)

3) Kennzeichnen Sie die Fehler in den folgenden Programmst¨ucken und ersetzen Sie anschließend die Programmst¨ucke durch effizienten MATLAB-Code.

a) x = 1:10;

x = x(1);

b) a = 1:100;

s = 0;

k = 0;

while k <= 100 s = s + a(k);

k = k + 1;

end

c) a = (1:5)’ * (1:5);

k = 0;

n = 0;

while k <= 4 k = k + 1;

while n <= 4 n = n + 1;

a(k,n,1) = k * n;

end end

2

(3)

Programmier¨ubung:

P3) Schreiben Sie ein MATLAB–Programm, das das lineare GleichungssystemAx= b mit A ∈Rn×n, x, b∈Rn l¨ost, wobei

A=

5 −1 1 0 · · · 0

−1 5 −1 1 . .. ...

−1 −1 5 −1 1 . .. ... 0 . .. ... ... ... ... 0 ... . .. −1 −1 5 −1 1 ... . .. −1 −1 5 −1 0 · · · 0 −1 −1 5

und

b=

 1 2 ... n

seien. Verwenden Sie dabei das Jacobi–Verfahren, das durch folgende Itera- tionsvorschrift gegeben ist:

xk+1 =M xk+d, xk ∈Rn, k∈N mit

M =I−D−1A=

0 1515 0 · · · 0

1

5 0 1515 . .. ...

1 5

1

5 0 1515 . .. ... 0 . .. ... ... ... ... 0

... . .. 1

5 1

5 0 1515 ... . .. 1

5 1

5 0 15

0 · · · 0 15 15 0

 ,

d=D−1b= (15,25, . . . ,n5)T. Dabei ist D die Diagonalmatrix

D=

a11 0 · · · 0 0 . .. ... ... ... . .. ... 0 0 · · · 0 ann

=

5 0 · · · 0 0 5 . .. ...

... . .. ... 0 0 · · · 0 5

 .

Das Verfahren soll abbrechen, wenn der Abstandkxk+1−xkk2 < wird.

Das Programm soll f¨ur beliebige Dimensionen n ≤ 20 arbeiten. W¨ahlen Sie zum Testen des Programms= 10−6,n = 8, x0 = (1,1, . . . ,1)T.

3

(4)

4

Referenzen

ÄHNLICHE DOKUMENTE

Im Folgenden werden die beiden Pre- und Post-Operatoren innerhalb etwas komplexerer Ausdr¨ ucke verwendet.. Hinweis: Bei der

Im folgenden Programm haben sich in den logischen Ausdr¨ ucken wieder ein paar kleine Fehler eingeschlichen. Die nachfolgende Ausgabeanweisung (printf()) gibt immer an, f¨ ur welche

Da rechts aber eine Variable steht, k¨ onnte man die Ausd¨ ucke schachteln, denn der Wert einer Zuweisung ist das Ergebnis. Das ++ bezieht sich auf j, i wird um den neuen Wert von

Welche Klammern sind f¨ ur das Einklammern von arithmetischen und logischen Ausdr¨ ucken in der Programmiersprache C erlaubt. (): ja []: nein

W¨ ahlen Sie jeweils Teilmengen von R so als Definitionsbereich und Zielbereich aus, dass durch die Zuordnung x → x 2 + x − 6 eine weder injektive noch surjektive Funktion,

– Two regular expressions may be concatenated; the resulting regular expression matches any string concatenating two substrings that match the subexpressions. – Two regular

– Auch f¨ur komplexere Strukturen als regul¨are Sprachen – G¨angig f¨ur die Beschreibung von Programmiersprachen.. Beispiel: Auszug der Grammatik

Du kannst nach literalen Zeichenketten suchen und weisst, dass bei regul¨ aren Aus- dr¨ ucke standardm¨ assig Gross- und Kleinschreibung unterschieden werden.. Du kannst regul¨