Hilfe bei Matlab < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 18:20 So 15.04.2012 | Autor: | Katthi |
Aufgabe | Prgrammieren Sie die Matrix [mm] A = ( a_i_j )_i_j=1,...n [/mm] mit den Einträgen [mm] a_i_j = i/j [/mm] und den Vektor [mm] x_j = j [/mm].
Berechnen Sie anschließend mit matlab y = A*x für n= 3,5,10,100,1000. |
Hallo,
ich höre dieses Semester Numerik und stehe völlig auf dem Schlauch, wie ich das mit dem Programmieren hinkriegen soll.
In dieser Aufgabe sollen wir halt die n-dimensionale Matrix programmieren und ich habe schon alle möglichen Anleitungen für Matlab durchwälzt, aber keine Anleitung gefunden. Überall steht nur, wie man eine Matrix z.B. 3x3 mit ganzen Zahlen definiert. Aber wie bekomme ich nun die Bedingungen für a_ij? Wie sieht das ganze Formal aus?
Ich hoffe, dass mir irgendjemand mit ganz einfachen Worten und vielleicht einem Beispiel helfen kann.
Viele Grüße
Katthi
|
|
|
|
Hi,
> Prgrammieren Sie die Matrix [mm]A = ( a_i_j )_i_j=1,...n[/mm] mit
> den Einträgen [mm]a_i_j = i/j[/mm] und den Vektor [mm]x_j = j [/mm].
>
> Berechnen Sie anschließend mit matlab y = A*x für n=
> 3,5,10,100,1000.
> Hallo,
>
> ich höre dieses Semester Numerik und stehe völlig auf dem
> Schlauch, wie ich das mit dem Programmieren hinkriegen
> soll.
> In dieser Aufgabe sollen wir halt die n-dimensionale Matrix
> programmieren und ich habe schon alle möglichen
> Anleitungen für Matlab durchwälzt, aber keine Anleitung
> gefunden. Überall steht nur, wie man eine Matrix z.B. 3x3
> mit ganzen Zahlen definiert. Aber wie bekomme ich nun die
> Bedingungen für a_ij? Wie sieht das ganze Formal aus?
> Ich hoffe, dass mir irgendjemand mit ganz einfachen Worten
> und vielleicht einem Beispiel helfen kann.
>
> Viele Grüße
> Katthi
Da gibt es zwei Wege:
a) doppelte Schleife
b) dyadisches Produkt
Die elegantestes Möglichkeit ist wohl bei 7x7:
(1:7)'*(1./(1:7))
Analog kannst du auch einen Vektor mit der Anfang:Schrittweite:Ende erstellen
1: |
| 2: | n=11;
| 3: | y=(1:n)'*(1./(1:n)*(1:n)'
|
Zum Üben solltest du aber unbedingt das mit der verschachtelten Schleife ausprobieren.
Eine Schleife schreibt man so
n=10;
for i=1:n do
for j=.... do
// etwas mit i und j machen, etwa A[i][j]....
end
end
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:26 Mo 16.04.2012 | Autor: | Katthi |
Vielen Dank für die schnelle Antwort.
Ich habe das jetzt mit der verschachtelten Schleife ausprobiert und das klappt auch.
Aber verstehe ich das richtig, dass man dafür immer in bestimmtes n definieren muss? Weil irgendwie hörte sich die Aufgabenstellung so an, dass das allgemein gemacht werden soll mit n. Aber wenn ich n nicht eine Zahl zuweise erkennt matlab das n nicht.
Und ich habe ja mehrere Werte für n angegeben. Muss ich das dann für alle n erneut machen oder gibt es da nen Trick, dass der mir alle Matrizen für jedes n ausgibt??
Grüße
Katthi
|
|
|
|
|
Hallo Katthi,
> Vielen Dank für die schnelle Antwort.
> Ich habe das jetzt mit der verschachtelten Schleife
> ausprobiert und das klappt auch.
> Aber verstehe ich das richtig, dass man dafür immer in
> bestimmtes n definieren muss? Weil irgendwie hörte sich
> die Aufgabenstellung so an, dass das allgemein gemacht
> werden soll mit n. Aber wenn ich n nicht eine Zahl zuweise
> erkennt matlab das n nicht.
> Und ich habe ja mehrere Werte für n angegeben. Muss ich
> das dann für alle n erneut machen oder gibt es da nen
> Trick, dass der mir alle Matrizen für jedes n ausgibt??
>
Schreibe eine Funktion in Matlab, die Dir für beliebiges n
eine solche Matrix erzeugt.
> Grüße
> Katthi
Gruss
MathePower
|
|
|
|