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

Runden/Abschneiden eines Polynoms mit symbolischen Variablen

 

Alex_kyb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2016, 14:16     Titel: Runden/Abschneiden eines Polynoms mit symbolischen Variablen
  Antworten mit Zitat      
Hallo Leute,
ich hätte eine Frage zur Matlab-Auswertung meiner Newton-Euler-Gleichungen eines mechanischen Systems:
Nach einigen Matlab Berechungen erhalte ich einen Vektor k(3x1), welcher aus zeitabhängigen, symbolischen Variablen besteht (alpha(t), beta(t), gamma(t)).
Simplify hilft hier nicht viel weiter, da alle möglichen Variationen von alpha(t), alpha(t)*beta(t) etc.. vorkommen. Der Term ist schlicht zu lang um ihn manuell auszulesen.
Viele der Faktoren sind aber sehr sehr klein und für das resultierende Modell wohl vernachlässigbar. Mein Ziel wäre es deshalb alle "kleinen" Terme (zb. 0.001*cos(beta)) aus dem Polynom zu löschen/auf 0 zu runden.
Zur Vereinfachung hab ich alpha/beta/gamma und ihre Ableitungen alpha'/beta' etc. nochmal händisch, zeitunabhängig definiert (Womit k zumindest keine Funktionen mehr enthält).

Also konkret die Frage: Gibt es irgendeine Möglichkeit aus einem Polynom mit mehreren symbolischen Variablen alle Faktoren zu runden(unter einem Minimum zu löschen)? Noch toller wäre es, falls das ganze auch mit zeitabhängigen Variablen funktioniert. Hab als Beispiel für meinen Vektor einen Teil der 1. Zeile von K als .txt angefügt.

PS: round/floor geben nur floor( k(1) ) etc. aus..


Hoffe ich hab mich soweit einigermaßen klar ausgedrückt,
Viele Grüße & Vielen Dank
Alex

termtest.txt
 Beschreibung:

Download
 Dateiname:  termtest.txt
 Dateigröße:  940 Bytes
 Heruntergeladen:  261 mal


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.11.2016, 14:19     Titel:
  Antworten mit Zitat      
Hallo,

vpa dürfte helfen.
Ansonsten bitte den Code zur Verfügung stellen, der das erzeugt.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2016, 14:58     Titel:
  Antworten mit Zitat      
Hallo&danke für die schnelle Antwort,
aber vpa hilft mir auch nur bedingt weiter.

z.B. wird mit vpa(0.0032578, 2) zu 0.003 gerundet, aber zusätzlich such ich noch die Möglichkeit die kleinen Terme zu streichen (Vpa rundet ja immer höchstens auf die erste "signifikante Zahl").
Gib es auch ne Möglichkeit auf z.B. 0.00 zu runden? So wie es round(0.0022*100)/100 tun würde?
(sowas wie round() in ner Schleife für jeden Faktor des Polynoms, da round für das gesamte Polynom ja wohl nicht funktioniert).

vg Alex
 
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.11.2016, 15:49     Titel:
  Antworten mit Zitat      
Hallo,

kann ich mir nicht vorstellen, da in den meisten Fällen ja nicht klar ist, welche Terme klein werden. Bei 0.0001*x + y kann man z.B. nicht ohne weiteres den ersten Term streichen, wenn x auch mal 1e6*y sein kann.
Vielleicht kannst du das bei der Konstruktion der Formel berücksichtigen?

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.