WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Frage zuf Funktion plot

 

Patrick1990
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 25.02.13
Wohnort: Thüringen
Version: 2015b
     Beitrag Verfasst am: 25.02.2013, 16:21     Titel: Frage zuf Funktion plot
  Antworten mit Zitat      
Hallo,
habe hier eine Aufgabe, welche ich einmal versucht habe zu bewältigen. Wir sollen die stückweise definierte Funktion mit plot, fplot und ezplot ausgeben. Nur bei plot will es bei mir nicht so Funktionieren mit der x-Achse.

Könnt ihr mir sagen wo mein Fehler liegt?

Code:

% funktionen1b.m
% *********************************************
%
% Tabellierung und Plot einer stückweise definierten Funktion
%
%       Eingangsdaten:
%               Untere Intervallgrenze  : a
%               Schrittweite            : h
%               obere Intervallgrenze   : b
%  
%       Ausgangsdaten:
%
% Ergebnistabelle und Plots zu f(x) plot, fplot, ezplot
%

clear all                
clc                      

format compact            
format short              

fprintf('\n Tabelle der stückweise definierten Funktion Nr.1')
fprintf('\n =================================================\n')
fprintf('\n Eingabe der Intervallgrenzen und Schrittweite\n')
while 1          % oder true
  a=input('Untere Intervallgrenze      a = ');
  b=input('Obere Intervallgrenze (b>a) b = ');
  h=input('Schrittweite (h>0)          h = ');
  if b>a && h>0, break; end
end

% Ausgabe der Tabelle

fprintf('\n%10s%20s','Argument','Funktionswert');
fprintf('\n%10s%20s','   x    ','     f(x)    ');
fprintf('\n______________________________');
x=a;
while x<b+0.1*h
  if abs(x)<=1
      y=x^2-8*x;
  elseif x>2
      y=x*exp(-x);
  else
      y=x/(((2*x+1)^2)*x^3);
  end;  
  fprintf('\n%10.3f%20.6f',x,y);    
  x=x+h;
end

% Plot der Funktion
a=-4;
b=4;
f1='x^2-8*x';
f2='x*exp(-x)';
f3='x/(((2*x+1)^2)*x^3)';

figure(1)
hold on
fplot(f1,[-1,1])
xlabel('x')
title('Aufgabe b: Stückweise definierte Funktion (fplot)')
fplot(f2,[2,b])
fplot(f3,[a,-1])
fplot(f3,[1,2])
axis([a b -10 10])
hold off

figure(2)
hold on
ezplot(f1,[-1,1])
xlabel('x')
ezplot(f2,[2,b])
ezplot(f3,[a,-1])
ezplot(f3,[1,2])
title('Aufgabe b: Stückweise definierte Funktion (ezplot)')
axis([a b -10 10])
hold off

figure(3)
hold on
fplot(f1,[-1,1])
xlabel('x')
title('Aufgabe b: Stückweise definierte Funktion (plot)')
plot(f2,[2,b])
plot(f3,[a,-1])
plot(f3,[1,2])
axis([a b -10 10])
hold off


fprintf('\n\nEnde.\n');

 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.02.2013, 16:27     Titel:
  Antworten mit Zitat      
Hallo,

der einzige Grund, warum im 3. Teil überhaupt etwas gemacht wird, ist, dass du da noch ein fplot drin hast.

plot erfordert x- und y-Werte, du musst die Funktion also selbst an den Stützstellen auswerten.
Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick1990
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 25.02.13
Wohnort: Thüringen
Version: 2015b
     Beitrag Verfasst am: 25.02.2013, 16:38     Titel:
  Antworten mit Zitat      
Hallo Harald,
vielen Dank.

Also heißt dies, wenn ich ein x habe, was frei einzugeben ist, kann ich die Fkt. nicht so einfach in Bereichen, die sich anhand des eigegebenen Wertes einstellen, plotten mit 'plot'?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.02.2013, 17:49     Titel:
  Antworten mit Zitat      
Hallo,

nein, sehe ich nicht so. Du kannst ja mit den eingegebenen Daten
Code:
definieren und dann die entsprechenden y-Werte berechnen.
Für plot ist es einfacher und generell ist es deutlich eleganter, mit (anonymous) Function Handles statt mit Strings zu arbeiten, siehe hier:
http://www.mathworks.com/help/relea...../anonymous-functions.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.