MatLab Funktion Plotten

precxx

schläft auf dem Boardsofa
Sers...

ich muss das Lennard-Jones-Potential als MatLab-Funktion schreiben, jedoch ist MatLab schon bissl her, also komm ich net wirklich weiter.

Die Funktion soll grafisch dargestellt werden, und zwar im Bereich von 1 bis 100.
Jedoch meckert MatLab immer, dass

??? Error using ==> /
Matrix dimensions must agree.

Error in ==> \potential.m
On line 9 ==> z=eval(y)



Funktion lautet:

function potential

y = '(4*100) * ((80/x)^12 - (80/x)^6)'
x = 1 : 10 : 100
z=eval(y)
plot(x,z)

return


Hat jemand ne Ahnung, wie ich der Funktion das beibringe?
 
Hallo prcxx

Hier habe ich ein kleines Beispiel wie man das lösen könnte:


x = 1:100;


n=length(x);
%liest die Länge des X-Arrays

z=ones(1,n);
% erstellt einen z-Array mit der selben Länge und füllt ihn mit Einsen damit es keine Division durch null geben kann


for a= 1:100
z(1,a)=(4*100) * ((80/a)^12 - (80/a)^6);
end

semilogy(x,z)
%plot mit logarithmischer y-Skala
%'loglog' wäre für beide Skalen und 'semilogx' für die X-Achse




bei Fragen bitte posten


gruss primatenmann
 
Sers...

thx für den Lösungsansatz!
Hab das Problem aber schon anders gelöst. Eigentlich war es garkein Fehler, die Funktion wurde richtig berechnet, nur der Plot war falsch dimensioniert, so dass der dargestellte Bereich zu groß war, um einen Gradienten zu erhalten!

:)
 
Oben