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

Hohe Integrationsgrenzen in "Symbolic Math Toolbox"

 

Rene112233

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2015, 12:04     Titel: Hohe Integrationsgrenzen in "Symbolic Math Toolbox"
  Antworten mit Zitat      
Hi Leute,

ich nutze die "Symbolic Math Toolbox" zum Integrieren meiner Funktion die 3 Komponenten hat (x,y,z Komponente). Die Form ist relativ kompliziert aber zu lösen. Meine Integrationsgrenzen sind von 0 bis X*2*pi. Solange mein X relativ klein ist ( kleiner als 25) löst Matlab das schnell und korrekt. Doch sobald meine Integrationsgrenzen zu hoch werden (also mein X > 25) kommt folgender Error:

Code:

The following error occurred converting from sym to double:
Error using mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.

Error in RDC_func (line 149)
    Laenge1_2(k,:) = vpa(il1_2);
 


Wie ihr seht schafft auch die Funktion vpa() keine Abhilfe. (Selbst wenn, würde sie mir ja nur symbolische Werte zurückgeben.)
Ich verstehe das Problem von Matlab nicht. Warum kann Matlab das Integral lösen und dann die Grenzen einsetzen aber sobald ich "höhere" Grenzen habe macht Matlab es nicht mehr. Ich hoffe wirklich ihr könnt mir helfen, da ich im Internet sonst auch nichts explizietes dazu gefunden habe außer dass hier:

http://www.mathworks.com/matlabcent.....reader/view_thread/236627

Vielen Dank schonmal und nen schönen Tag


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.01.2015, 12:07     Titel:
  Antworten mit Zitat      
Hallo,

bitte ein reproduzierbares Beispiel posten, in dem das Problem auftritt.

Wenn das Integral letztlich numerisch ausgewertet wird, wäre integral3 eine Alternative.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2015, 12:18     Titel:
  Antworten mit Zitat      
Entschuldige, hier das Beispiel: (wobei er hier unter Verwendung von vpa die symbolisch Lösung ausgibt)

Er soll von einer Funktion die Länge berechnen:
Rechnung ist korrekt.

Code:

Gesamtlaenge = 100;
pitch_s = 2.6;
pitch_l = 0.325;
dis_EL = 0.00255;

    x = sym('x');    
    omega_l = pitch_s/pitch_l;
    m = omega_l+1;
    xl1_3a  = 3*dis_EL*cos(m*x);        
        x1a = diff(xl1_3a);                                  
    xl1_3b  = rc*cos(x);                            
        x1b = diff(xl1_3b);                          
        x2 = (x1a+x1b)^2;                          
    yl1_3a  = 3*dis_EL*sin(m*x);        
        y1a = diff(yl1_3a);
    yl1_3b  = rc*sin(x);                            
        y1b = diff(yl1_3b);
        y2 = (y1a+y1b)^2;                          
    zl1_3  = x*pitch_s/(2*pi);                                    
        z1 = diff(zl1_3);
        z2 = z1^2;
    hl1_3 = sqrt(x2+y2+z2);    
    il1_3 = int(hl1_3,x,0,(Gesamtlaenge/pitch_s)*2*pi);      
    Laenge1_3 = double(il1_3)
 
 
Rene112233

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2015, 12:21     Titel:
  Antworten mit Zitat      
Nachtrag:

Wobei hier mein X = Gesamtlaenge/pitch_s ist....
Wenn ich die Gesamtlaenge bei 10 beispielsweise habe funktioniert es, bei 100 nicht.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.01.2015, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

am besten mal den Technischen Support von MathWorks kontaktieren, warum das so ist.
Als Abhilfe würde ich integral verwenden (nicht integral3, da hatte mich die Erwähnung dreier Komponenten verwirrt). Falls du die Ableitungen weiterhin symbolisch machen möchtest, kannst du den Befehl matlabFunction verwenden, um aus symbolischen Ausdrücken Function Handles zu generieren.

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