|
|
Nullstellen Numerisch bestimmen und damit integrieren |
|
Coladose |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2019, 20:30
Titel: Nullstellen Numerisch bestimmen und damit integrieren
|
|
|
|
|
Hallo liebe Community,
Ich habe folgenden Sachverhalt: Mit einem Taster habe ich ein Oberflächenprofil vermessen und möchte dieses nun mit Matlab auswerten. Somit habe ich also eine Messdatenreihe von ca. 400 Punkten.
Ich möchte die Nullstellen bestimmen um so meine Integrationsgrenzen rauszufinden und dann eben besagte Fläche zu berechnen.
Nun das Problem: Wie kann ich die Nullstellen bestimmen? Ich habe schon probiert durch Interpolation und Basic Fitting regressiv eine Funktion zu bestimmen. Das hat leider nicht funktioniert....
Über fprintf bekomme ich zwar Nullstellen raus aber immer nur eine (lokal) ich würde mir gern alle Nulldurchläufe aufeinmal anzeigen lassen.
Und: kann diese dann zur Intergration verwenden? Mit Trapz kann ich ja nur Messwerte verwenden die sich in der Nähe der interpolierten Werte befinden aber nicht den interpolierten Wert selbst
Ich hoffe ich konnte mein Anliegen verständlich darlegen
Bin für jeden Tipp dankbar!
Beschreibung: |
So sieht das Profil übrigens aus... |
|
Download |
Dateiname: |
Profil.jpg |
Dateigröße: |
19.63 KB |
Heruntergeladen: |
289 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2019, 09:48
Titel:
|
|
Hallo,
Nullstellen sind zwischen
und dem folgenden Wert. Du kannst Interpolation nutzen, um die Nullstelle genauer zu bestimmen.
Integrieren kannst du mit trapz. Dabei würde ich [nullstelle, 0] als zusätzliche Daten hinzufügen und auf das passende Intervall einschränken. Das sollte dann ganz gut klappen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Coladose |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 08:26
Titel: Nullstellen Numerisch bestimmen und damit integrieren
|
|
Hallo Harald,
Danke das hat wirklich geholfen!!!
eine Frage hätte ich noch: wie kann ich die Datenpunkte in die Variablen (Vektoren) einfügen? Jedes Mal wenn ich eine neue Berechnung starte werden die Änderungen überschrieben....
Grüße,
Sandra
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.07.2019, 08:59
Titel:
|
|
Hallo,
wenn du beispielsweise Nullstellen (a,0) und (b,0) gefunden hast und zwischen diesen integrieren willst:
Ansonsten bitte den momentan verwendeten Code zur Verfügung stellen. Nur so kann man da wirklich weiterhelfen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Coladose |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 13:30
Titel: Nullstellen Numerisch bestimmen und damit integrieren
|
|
|
|
|
Hallo,
hm ich bin mir nicht sicher ob ich deinen Vorschlag einbringen kann....
wenn ich das richitg verstanden habe suche ich mit find( diff(sign(y)) ~= 0) die Messpunkte die nahezu 0 sind.
Und da ist, denke ich, der Haken. Ich möchte ja eine Nullstelle haben um klare Integrationsgrenzen angeben zu können.
Ich hab das jetzt so gelöst, dass ich die die Nullstellen interpolierte indem ich an der jeweiligen Stelle ein Messwert oberhalb und einen unterhalb der x- Achse wähle und mir dann mit fprintf den genauen x-Achsenabschnitt an dem y =0 ausgeben lasse.
Allerdings muss ich dann von Hand die Nullstellen in meine Datenreihe in EXCEL nachtragen, erneut die Daten in matlab importieren und dann abschnittsweise integrieren, da ich nicht herausfinden konnte wie ich Matlab sagen kann doch bitte den Betrag zu verwenden und die 3 Teilflächen einfach auf zu addieren .
kann ich auch mir mit y_lookup auch alle Nullstellen anzeigen lassen? schaffe es nur das eine angegeben wird
Ganz schön aufwenige Prozedur :/
Anbei die Codes.
Versuch_80_20_90_n30: Messdaten mit denen ich die Nullstellen interpoliert habe
Versuch_80_20_90_n30_iNa: hier sind die inerpolierten Nullstellen in der Exceldatei ergänzt
Gruß,
Sandra
Beschreibung: |
|
Download |
Dateiname: |
Versuch_80_20_90_n30_iN.m |
Dateigröße: |
1.69 KB |
Heruntergeladen: |
268 mal |
Beschreibung: |
|
Download |
Dateiname: |
Versuch_80_20_90_n30_iNa.m |
Dateigröße: |
1.71 KB |
Heruntergeladen: |
260 mal |
|
|
|
sijuherm |
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 01.08.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.08.2019, 14:19
Titel:
|
|
Vielleicht habe ich ja einen Denkfehler, aber was spricht denn dagegen die Betragsfunktion zu nutzen?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.08.2019, 22:35
Titel:
|
|
Hallo,
Zitat: |
indem ich an der jeweiligen Stelle ein Messwert oberhalb und einen unterhalb der x- Achse wähle |
Und genau das macht mein Vorschlag
find( diff(sign(y)) ~= 0)
automatisiert.
Zitat: |
Allerdings muss ich dann von Hand die Nullstellen in meine Datenreihe in EXCEL nachtragen, erneut die Daten in matlab importieren |
Im Beitrag von 31.07.2019, 09:59 habe ich dir doch beschrieben, wie du das innerhalb von MATLAB machen kannst.
Zitat: |
da ich nicht herausfinden konnte wie ich Matlab sagen kann doch bitte den Betrag zu verwenden |
Von einem Betrag war bisher nicht die Rede. Generell: abs
Zitat: |
die 3 Teilflächen einfach auf zu addieren |
Welche 3 Teilflächen denn??
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|