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

Probleme mit symb. Int. von Heaviside mit variabler Grenze

 

ManniMan
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 10:00     Titel: Probleme mit symb. Int. von Heaviside mit variabler Grenze
  Antworten mit Zitat      
Hallo Leute,


Seit kurzem bin ich von einer ziemlich alten Matlab Version (glaube 7.4) auf R2011b umgestiegen. In der alten Version hatte ich keine Probleme mit der symbolischen Integration von Heaviside Funktionen.
Auch mit variablen grenzen wurde das Integral vollständig dargestellt. Jetzt sagt er mir : "Explicit Integral could not be found". Das gilt auch wenn ich sämtliche Variablen durch konstanten ersetze und nur noch die obere grenze Variabel ist.
Mein Code lautet:

Code:

syms  a b c1 c2 s eps sigma;


smin=1.16;


sigma = '2*heaviside(s-2)*heaviside(4-s)*s'


f=int(sigma,s,smin,'4*E')

 


Die Ausgabe lautet:

Warning: Explicit integral could not be found.

f =

int(2*s*heaviside(s - 2)*heaviside(4 - s), s = 29/25..4*En)



Hat sich etwas geändert im neuen Matlab? bzw. was mach ich falsch.

Danke schon mal für die Hilfe
Gruss
Manu
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: 17.09.2013, 10:34     Titel:
  Antworten mit Zitat      
Hallo,

seit Release R2008b läuft im Hintergrund statt einem Maple-Kernel ein MuPAD-Kernel. Dadurch kann sich auch die verfügbare Funktionalität bzw. deren Arbeitsweise geändert haben.

Ich habe deinen Code gerade mit dem neuesten Release (R2013b) getestet und bekomme:
f = 12

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.09.2013, 10:45     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Ich habe deinen Code gerade mit dem neuesten Release (R2013b) getestet und bekomme:
f = 12
ja aber das macht doch nicht wirklich sinn oder? ich meine bei vaiabler oberer grenze kann ja schlecht 12 rauskommen oder?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
ManniMan
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 10:53     Titel:
  Antworten mit Zitat      
Ah Ok, Also das erklärt auf jeden fall mal das veränderte Verhalten.
Ich versteh jetzt nur nicht ganz wie du einen festen Wert bekommen kannst, da die obere Grenze ja variabel ist.
Mein Problem ist, dass ich das symbolische Ergebnis eigentlich weiter verarbeiten will. Das heisst es soll noch eine weitere Integration durchgeführt werden über E.
Allerdings befürchte ich dass der Mupad Kernel Das Symbol 'E' als exp(1) interpretiert.
kann das stimmen?

Könntest du den folgenden code noch testen:

Code:

syms  a b c1 c2 s eps sigma En;


smin=1.16;


sigma = '2*heaviside(s-2)*heaviside(4-s)*s'

int(f,En,0,40)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
ManniMan
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 11:02     Titel:
  Antworten mit Zitat      
Sorry, zu früh abgeschickt.

Hier kommt nämlich als ergebnis:

int(int(2*s*heaviside(s - 2)*heaviside(4 - s), s = 29/25..4*En), En = 0..40)

heraus!

Das ist ein eigtl leicht zu lösendes und vollkommen definiertes Integral.
Trotzdem sagt er "Explicit Integral could not be found".

Macht keinen Sinn für mich.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.09.2013, 11:08     Titel:
  Antworten mit Zitat      
meinst du nicht ?
Code:
int(sigma,s,0,40)

da kommt 12 raus
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
ManniMan
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 11:14     Titel:
  Antworten mit Zitat      
Ups,
Tschuldigung. Bin grad bischen im stress.

Nee ich mein:

Code:


syms  a b c1 c2 s eps sigma;


smin=1.16;


sigma = '2*heaviside(s-2)*heaviside(4-s)*s'


f=int(sigma,s,smin,'4*E')

 g=int(f,E,0,40)
 


So, Jetz müssts passen.
Sorry
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: 17.09.2013, 11:28     Titel:
  Antworten mit Zitat      
Hallo,

ich glaube, jetzt kommt was mit Code und Ergebnissen durcheinander.

E ist wohl als exp(1) definiert, aber ich vermute, dass du 4*En verwenden wolltest?

Also, bei
Code:
syms  a b c1 c2 s eps sigma;
smin=1.16;
sigma = '2*heaviside(s-2)*heaviside(4-s)*s'
f=int(sigma,s,smin,4*En)

bekomme ich dasselbe Ergebnis wie du.

Wenn ich die letzte Zeile ersetze durch
Code:
f = int(sigma,s,0,40)

bekomme ich als Ergebnis ebenso wieder 12.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 11:43     Titel:
  Antworten mit Zitat      
Ja genau,

weil E als exp definiert ist hab ich es in 'En' geändert. um konflikte zu vermeiden. Das problem ist dass er einfach keine Symbolische Integration durchführt. Also mir kein fertiges Plotbares Ergebnis liefert bei

Code:

Code:  


syms  a b c1 c2 s eps sigma;


smin=1.16;


sigma = '2*heaviside(s-2)*heaviside(4-s)*s'


f=int(sigma,s,smin,'4*E')

ezplot(f,E)

 


Mit maple Kern konnte Matlab das.
Die Frage ist jetzt ob das gar nicht mehr geht, oder ob man einen speziellen befehl braucht. oder etwas ähnliches.

Gruss
Manu
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.09.2013, 11:50     Titel:
  Antworten mit Zitat      
ehrlichgesagt bin ich da überfragt. ist aber recht interessant. wende dich doch mal an den matlab support. was die dazu sagen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
ManniMan
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 12:20     Titel:
  Antworten mit Zitat      
Ja schade.
Trotzdem danke für den Versuch.

Gruss
Manu
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: 17.09.2013, 14:03     Titel:
  Antworten mit Zitat      
Hallo,

wenn es letztlich nur um das Plotten geht, sollte folgendes funktionieren:
Integral für verschiedene numerische Werte auswerten und das dann in plot stecken.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 14:30     Titel:
  Antworten mit Zitat      
Hallo,
Also letztendlich gehts nicht nur ums plotten. Deine Lösung habe ich mir auch schon überlegt. Es wäre nur sehr praktisch und sinnvoll eine Symbolische Lösung zu generieren. Auch weil ich das die Lösung des Integrals weiter verwenden will.

Letztendlich soll das in etwa so aussehen:

Code:

syms  a b c1 c2 s En eps sigma;


smin=1.16;


sigma = '2*heaviside(s-2)*heaviside(4-s)*s'


f=1/eps^2 * int(sigma,s,smin,'4*eps*E')

epsmin="Konstante"/4*E
g=int(f,eps,epsmin(E),inf)

ezplot(g,E)
 

 


Wobei die funktion g in einem anderen programm weiter verwendet werden soll.

Das lässt sich auch numerisch für einen linspace Vektor lösen denke ich .

Symbolisch wäre es nur wesentlich einfacher zu handhaben und auch deutlich kürzer.
Und da es mit dem maple kernel geklappt hat dachte ich es muss doch auch irgendwie mit dem Mupad kernel gehen.

Gruss
Manu
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: 17.09.2013, 15:15     Titel:
  Antworten mit Zitat      
Hallo,

ich weiß nicht wie das symbolisch ginge, aber ich weiß ja nun auch nicht alles :)

Wenn du es in eine Funktion auslagerst, sollte es auch numerisch nicht viel komplizierter sein.

Wenn du beim symbolischen Weg bleiben willst, kann ich dir dann nur raten, den Technischen Support von MathWorks zu kontaktieren.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2013, 15:25     Titel:
  Antworten mit Zitat      
Ja letztendlich werde ich ganz ums numerische nicht rumkommen. Aber ich denk ich werd mich auch mal an den support wenden. Das interessiert mich jetzt schon. Wäre ja schon irgendwie ein Rückschritt wenn es in einer alten version funktioniert und jetzt nicht mehr. Aber ich kenn ja auch die gründe für den Umstieg auf Mupad nicht. Kann ja auch durchaus ein wirtschaftlicher gewesen sein.

Also Danke nochmal für die schnellen Antworten

Grüsse

Manu
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.