Matrix ohne Schleifen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Legen Sie eine Koeffizientenmatrix [mm] $A_n [/mm] = (a_ik) [mm] \in \IR^{nxn}$ [/mm] mit $a_ik = [mm] \bruch{1}{i+k-1}$ [/mm] für $i,k = 1,...,n$ an.
Und das vektorisiert, dh. ohne Verwendung von Schleifen. |
Ich beginne gerade mit Matlab umzugehen, und diese Aufgabe bringt mich schon an meine Grenzen.
Folgendes hab ich bereits:
n = 10
i = 1:n
k = 1:n
A(i,k) = 1/(i(1)+k(1)-1)
Die rotmarkierten Indizes müsste ich irgendwie dynamisch gestalten, ich wüsste aber nicht wie das ohne Schleifen geht.
Lg
|
|
|
|
Moin,
in Matlab ist folgendes möglich:
x=1:1:100
y(:,1)= x'+2
y(:,2)= x' .* x'
zwar unschön aber geht ohne schleifen.
|
|
|
|
|
Danke für deinen Lösungsvorschlag, habs doch noch selbst geschafft.
Lg
|
|
|
|
|
Hallo dreamweaver,
> Legen Sie eine Koeffizientenmatrix [mm]A_n = (a_ik) \in \IR^{nxn}[/mm]
> mit [mm]a_ik = \bruch{1}{i+k-1}[/mm] für [mm]i,k = 1,...,n[/mm] an.
> Und das vektorisiert, dh. ohne Verwendung von Schleifen.
> Ich beginne gerade mit Matlab umzugehen, und diese Aufgabe
> bringt mich schon an meine Grenzen.
>
> Folgendes hab ich bereits:
>
> n = 10
>
> i = 1:n
> k = 1:n
>
> A(i,k) = 1/(i(1)+k(1)-1)
>
> Die rotmarkierten Indizes müsste ich irgendwie dynamisch
> gestalten, ich wüsste aber nicht wie das ohne Schleifen
> geht.
Zunächst erzeugst Du Dir einen Vektor mit Einsen als Einträge,
das geht so:
[mm]S=ones(1,10)[/mm]
Danach wird durch Multiplikation mit i bzw. k eine Matrix T gebildet.
Die Matrix T enthält in jeder Zeile die Nummer dieser Zeile.
Durch eine entsprechende Operation bekommst Du es auch hin,
daß in jeder Spalte die Nummer der Spalte steht, nennen wir
diese Matrix U.
Für weitere Informationen, siehe MATLAB - Matrixrechnung
>
> Lg
Gruss
MathePower
|
|
|
|
|
Danke für deine Hilfe und die Matlab Webseite!
Habs inzwischen geschafft.
Lg
|
|
|
|