Normlen ploten im R^2 < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:36 Fr 22.05.2009 | Autor: | DerGraf |
Aufgabe | Stelle die Punktmengen [mm] M_{np}:=\{ x\in\IR^n : \parallel x \parallel_p \le 1 \} [/mm] für n=1,2,3 und p [mm] \in 1,2,\infty [/mm] grafisch dar oder beschreibe diese verbal.
Zusatz: Entwickle ein Matlab-Programm zur Darstellung von [mm] M_{np} [/mm] für n=2 und beliebiges p. |
Hallo,
ich habe eine Frage zum Zusatz. Für p=1 haben wir folgendes Programm:
clear;
a=-1; b=1; n=20; dx=(b-a)/n;
xv=(a:dx:b);
yv=1-(abs(xv));
zv=-yv;
plot(xv,yv,xv,zv);
Nun habe ich versucht, dieses Programm zu erweitern für p=1 und p=2:
clear;
a=-1; b=1; n=20; dx=(b-a)/n;
xv=(a:dx:b);
yv=1-(abs(xv));
zv=-yv;
subplot(2,1,1);
plot(xv,yv,xv,zv);
[mm] yv=sqrt(1-xv^2);
[/mm]
zv=-yv;
subplot(2,1,2);
plot(xv,yv,xv,zv);
Leider gibt dies einen Fehler und ich weis nicht warum. Kann mir einer weiterhelfen?
Gruß
DerGraf
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:16 Fr 22.05.2009 | Autor: | Frasier |
Hallo,
der Fehler liegt in der 8. Zeile beim [mm] xv^2.
[/mm]
Hier versuchst du, zwei Vektoren miteinander zu multiplizieren. Vermutlich möchtest du aber einfach nur die Elemente von xv einzeln quadrieren.
Das geht mit xv.^2.
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:21 Fr 22.05.2009 | Autor: | DerGraf |
Danke für die schnelle Hilfe :)
Die 2. Norm hat jetzt auch geklappt. Für die Unendlichnorm kam jetzt folgender Gedanke:
clear;
a=-1; b=1; n=20; dx=(b-a)/n;
xv=(a:dx:b);
yv=1-(abs(xv));
zv=-yv;
subplot(3,1,1);
plot(xv,yv,xv,zv);
yv=sqrt(1-xv.^2);
zv=-yv;
subplot(3,1,2);
plot(xv,yv,xv,zv);
yv=1;
zv=-yv;
subplot(3,1,3);
plot(xv,yv,xv,zv,yv,xv,zv,xv);
Ich bekomme zwar keine Fehler, aber Graph 3 macht auch nichts. Was ist hier verkehrt?
Gruß DerGraf
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:08 Fr 22.05.2009 | Autor: | Frasier |
Hallo,
die Punkte werden geplottet, aber nicht verbunden, weil die Dimensionen nicht passen: xv hat 21 Werte, yv und zv aber nur jeweils einen.
Du kannst jetzt die Punkte mit Markern versehen, dann sieht man sie besser:
plot(xv,yv,'rx',xv,zv,'bx',yv,xv,'gx',zv,xv,'mx');
oder du passt die Größen an, dann werden sie auch verbunden:
1: | yv=1*ones(size(xv));
| 2: | zv=-1*ones(size(xv));
| 3: | plot(xv,yv,xv,zv,yv,xv,zv,xv);
| 4: | xlim([-1.2 1.2]);
| 5: | ylim([-1.2 1.2]); |
Zur besseren Darstellung sind die Achsen etwas angepasst.
lg
F.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:57 Fr 22.05.2009 | Autor: | DerGraf |
Funktioniert fabelfahft, danke :)
Gruß DerGraf
|
|
|
|