Plotten einer Funktion mit Matlab

Neue Frage »

Ripper1986 Auf diesen Beitrag antworten »
Plotten einer Funktion mit Matlab
Hallo leute,

ich habe ein kleines Problem... ich würde gerne eine Funktion Plotten aber ich weiß nicht so richtig wie ich das machen soll. Die Funktion ist:



Da ich eine weitere Funktion habe die auf diskrete Werte der obigen Funktion zugreift müsste ich sie irgendwie implementieren. Ich hatte vor Matlab zu nutzen. Es wäre super wenn mir jemand helfen könnte!!

Liebe Grüße,
FELIX
chrizke Auf diesen Beitrag antworten »

Du kannst eine Funktion schreiben, die genau das macht was du willst.

Sie hat zwei inputs und die Fallunterscheidung machst du mit if-Abfragen.

Als Ausgabe gibst du dann das entsprechende aus.
Ripper1986 Auf diesen Beitrag antworten »

hi,
danke für die schnelle Antwort. Mir ist leider nicht ganz klar wie ich das mit dem alpha machen soll!
chrizke Auf diesen Beitrag antworten »

Wovon hängt denn alpha ab?
Ripper1986 Auf diesen Beitrag antworten »

wenn ich es richtig verstanden habe variiert alpha für jedes tupel (x,y) zwischen 0 und 1
chrizke Auf diesen Beitrag antworten »

Also du meinst, wenn ein existiert, sodass , dann wird angenommen?
 
 
Ripper1986 Auf diesen Beitrag antworten »

so habe ich die funktion verstanden

es soll so werden, dass die funktion über all 0 ist außer in einem kleinen dreieck um den ursprung wo sie stetig in (0,0,1) läuft
chrizke Auf diesen Beitrag antworten »

ok, das Alpha kann man ja rausfinden, indem man mit 4 multipliziert und dann prüft, ob Alpha zwischen 0 und 1 liegt.
Ripper1986 Auf diesen Beitrag antworten »

jep, das versuche ich auch gerade aber irgendwie bekomme ich das nicht so richtig hin mit matlab :-D

ich melde mich später nochmal wenn es nicht klappen sollte

gruß
felix
Ripper1986 Auf diesen Beitrag antworten »

Hi,

da bin ich wieder! die Funktion war recht einfach zu schrieben im nachhinein. jetzt kann ich sie an diskreten punkten auswerten, jedoch bekomme ich das mit dem Plotten nicht hiun, wäre super wenn du mir da noch eben helfen könntest

gruß

ich habe das bis jetzt so:

[X,Y]=meshgrid(0:0.01:1);
Z=Function(X,Y);



und genau da habe ich auch shcon was problem.. der sagt dann Z=0; und geht nicht alle durch...
chrizke Auf diesen Beitrag antworten »

So ich hab es nun fertig. Zeig mir doch man deine Funktion "function".
Ripper1986 Auf diesen Beitrag antworten »

function output = Funktion1(x,y)



if ((4.*x+4.*y) < 1)
output=1-(4.*x+4.*y);
else
output=0;
end;


end
Ripper1986 Auf diesen Beitrag antworten »



sollte ich noch dabeisagen
chrizke Auf diesen Beitrag antworten »

Dass das aus dem Einheitsquadrat kommt, ist schon klar Augenzwinkern

Das Problem ist, dass du ja einen bzw. zwei Vektoren als Input hast und kein Skalar.

Und die if Bedingung gilt jetzt natürlich nicht für alle Wertepaare (x,y). Deswegen wird der else Fall angenommen.
Aus diesem Grund wird immer 0 ausgegeben.
Ripper1986 Auf diesen Beitrag antworten »

also baue ich zwei schleifen, die alle Einträge in den Vektoren durchgehen und die Ergebnisse in einen Vektor schreiben? aber wie genau mach ich das? habe leider nicht so viel Ahnung von matlab
chrizke Auf diesen Beitrag antworten »

In Matlab sollte man das, was man mit Matrix/Vektor Operationen erledigen kann auch damit erledigen Augenzwinkern

Meine Funktion sieht so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function [ res] = Funktion( x,y )

a = 4*(x+y);

h = (a>0)==(a<=1);

res = (1-a).*h;

end
Ripper1986 Auf diesen Beitrag antworten »

ich habe aus a>0 noch ein a>=0 gemacht und jetzt passt es super!!!

VIELEN DANK UND SCHOENEN TAG NOCH

gruß
felix
chrizke Auf diesen Beitrag antworten »

Laut deiner Definition muss aber a>0 sein.
Ripper1986 Auf diesen Beitrag antworten »

da muss ich dir recht geben... muss ich dann wohl noch ändern ;-)
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »