|
|
Runden/Abschneiden eines Polynoms mit symbolischen Variablen |
|
Alex_kyb |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2016, 14:16
Titel: Runden/Abschneiden eines Polynoms mit symbolischen Variablen
|
 |
|
 |
|
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
Beschreibung: |
|
 Download |
Dateiname: |
termtest.txt |
Dateigröße: |
940 Bytes |
Heruntergeladen: |
261 mal |
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2016, 14:19
Titel:
|
 |
Hallo,
vpa
dürfte helfen.
Ansonsten bitte den Code zur Verfügung stellen, der das erzeugt.
Grüße,
Harald
|
|
|
Alex_kyb |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.11.2016, 14:58
Titel:
|
 |
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
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.11.2016, 15:49
Titel:
|
 |
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|