Wie im Quelltext ersichtlich, lasse ich von MATLAB zuerst eine Funktion symbolisch Berechnen und ersetze danach die symbolische Werte teilweise durch Zahlen.
Wie kann ich bewirken, dass beim Aufrufen der Funktion "phi" die trigonometrische Funktionen als Fließkommezahlen ausgegeben werden ?
z.B. nicht als cosh(9/4), sondern als 4.8 ?
Denn ich vermute, hier liegt das Problem für den 3d-Plot ( falls es nicht der Fall ist, wäre ich über jede weitere Anregung dankbar ! )
Vielen Dank und viele Grüße
Denys
Code:
syms a b x y G theta p
% Definieren der symbolischen Variabeln
i=1;
phi=0;
for i=1:2:30
phi=phi+4*b^2/(pi^3)*((-1)^((i-1)/2))/(i^3)*(1-cosh(i*y*pi/b)/cosh(i*pi*a/(2*b)))*cos(i*pi*x/b);
end;
% Schleife zur Erstellung der Summe ( Spannungsfunktion ) bis zum Index % 15
dreieck_phi=diff(phi,2,x)+diff(phi,2,y) % Nabla-Operator == 0 ( Bedingung an die Spannungsfunktion )
tau_z_x= 2*G*diff(phi,y);
tau_y_z= -2*G*diff(phi,x);
% Berechnung der Spannungen
tau_z_x_x_plus_tau_y_z_y=diff(tau_z_x,x)+diff(tau_y_z,y) % Prüfen der 2. Bedingen an die Spannungsfunktion
Vielen Dank für deine Antwort. Stimmt, das eine KOmma war ein fehler bei mir, ich habe es jetzt berichtigt, doch ich bekomme immer noch ein Fehlermeldung, wenn ich das Skript ausführe.
Ich habe leider deine Ahnung, woran es liegen könnte.
Mein Idee ist folgende: die Funktion "phi" gibt am Ende Werte raus, die z.B. Ausdrücke wie cosh(7) haben, also keine numerischen Ausdrücke , vielleicht kann die "mesh" Funktion damit nichts anfangen ?
Hier ist nochmal die Fehlermeldung:
Zitat:
Error using graph3d.surfaceplot>localConstructor (line 92)
Invalid input arguments
Error in graph3d.surfaceplot (line 7)
h = localConstructor(varargin{:});
Error in mesh (line 158)
hh = graph3d.surfaceplot(x,y,z,'FaceColor',fc,'EdgeColor','flat', ...
Error in SUF2_1 (line 40)
mesh(x,y,phi);
Kann ich vielleicht irgendwo einstellen, dass z.b. die sin, cos, cosh..... usw. numerisch ausgewertet werden ?
Wenn du mesh verwenden wolltest, müsstest du die Werte tatsächlich einsetzen (subs).
Woher soll MATLAB denn sonst wissen, dass phi für die zuvor genannten x und y ausgewertet werden soll?
Einfacher ist aber wie gesagt ezmesh.
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.