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

Symbolic function abschnittsweise definieren

 

qwert
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 10:45     Titel: Symbolic function abschnittsweise definieren
  Antworten mit Zitat      
Hallo,

ich möchte gerne eine Funktion erstellen, die abschnittsweise definiert ist und das ganze mit symbolischen Variablen.
Wie kann ich sowas machen?

Versucht habe ich bisher folgendes:
Code:

function [y] = h1(x)
    if(subs(x) < 1)
        y = 1;
    else
        y = 0;
    end
end

Wobei ich hier die Meldung "Conversion to logical from sym is not possible." erhalte.

Vielen Dank Smile.
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: 14.05.2014, 11:08     Titel:
  Antworten mit Zitat      
Hallo,

das geht mit der heaviside-Funktion:
Code:
syms x
f = sym(1);
g = sym(0);
y = f + heaviside(x-1)*(g - f)
ezplot(y, [-5 5])


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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 12:22     Titel:
  Antworten mit Zitat      
Danke, aber deine Funktion hat bei 1 den Wert 0.5, meine soll aber nur die Werte 1 und 0 annehmen können.

Exakt darstellen möchte ich die Funktion:
f(x) = 1 für |x| < 1
f(x) = 0 sonst
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: 14.05.2014, 12:40     Titel:
  Antworten mit Zitat      
Hallo,

dann eben so:
Code:
syms x
y = abs(x)<1;
ezplot(y, [-5 5])

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 13:19     Titel:
  Antworten mit Zitat      
Danke.

Jetzt will ich damit natürlich rechnen.
Jetzt liefert mir aber z.B.
Code:

int(y,x,-1,1)
 

Error using mupadmex
Error in MuPAD command: The integrand is invalid. [int]

Error in sym/int (line 124)
rSym = mupadmex('symobj::intdef',f.s,x.s,a.s,b.s,options);

Warum? Und geht es anders?
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: 14.05.2014, 15:03     Titel:
  Antworten mit Zitat      
Hallo,

das Integrieren ginge mit dem ersten Ansatz. Der Wert an einem Punkt ist für das Integral ja egal. Ansonsten bin ich auch überfragt.
Für Integrale könnte man natürlich das Integral aufspalten und jeweils über den Definitionsbereich der Teilfunktion integrieren.

Sollte das Problem hier nicht geklärt werden können, würde ich den Technischen Support von MathWorks kontaktieren.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 17:02     Titel:
  Antworten mit Zitat      
Das Problem ist, dass ich eine Faltung berechnen möchte und das Integral zu diesem Zweck aufzuspalten ist (zumindest für mich) nicht ganz trivial.
Aber ich überleg mir eine Formel, die mir die Grenzen schön ausgeben kann - ist zum Verständnis wohl sowieso besser Smile.
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.