|
phigo90 |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2016, 19:43
Titel: Syms,Werte einsetzten
|
|
|
|
|
Folgende Problematik:
Bisheriger Code:
Ich habe mir eine Funktion geschrieben, welche mir die Ableitung berechnet. Meine Funktion setzt sich aus einer Summe von Gaussfunktionen (genormed) zusammen. Das hat soweit auch alles funktioniert. p2 ist dabei ein Vektor, welcher die Vorfaktoren, die Mittelwerte sowie die Varianzen enthält. Diese Funktion wird in einer Schleife aufgerufen (welche zum Beispiel von 1 bis 44 läuft, dabei ist p2 immer unterschiedlich). Natürlich ist das sehr ineffizient diese Ableitung immer wieder zu bilden. Für eine große Anzahl von Funktionen wird dadurch mein Programm sehr langsam.
Nun wollte ich allgemein die Ableitung einmal bilden. Dabei möchte ich den Vektor p2 Variabel lassen. Des Weiteren ist die FunktionenAnzahl Variabel.
Beispiel: nfunc=3 dann bestitz p2 neun Einträge. 3 Vorfaktoren, 3 Varianzen und 3 Mittelwerte. Für nfunc=5 sind es 15 Einträge usw...
Was ich bisher versucht habe, aber nicht funktionirt bzw. ich nicht zum Laufen bekomme:
Ich definiere mir zuerst global 3*nfunc symsVariablen und rufe anschließend die Funktion calcAblAllg auf.
Diese gibt mir jetzt DG zurück. Das ist eine symfun welche von z und von a1,a2,a3 usw. abhängt. Nun möchte ich beim Schleifendurchlauf die Variablen a1,a2,a3 usw. mit Werte ersetzten (Diese Werte habe ich in einem Vektor gespeichert). Das bedeutet im Endeffekt ist das ganze nur noch eine Funktion von z. Dann setzte ich Werte für z ein und Werte meine Ableitung an gewählten Stellen aus.
für nfunc=9
Mein Problem: DG(z,a1,a2,a3....,a9)=...
Nun habe ich einen Vektor p3=[1 2 3 4 5 6 7 8 9].Ich möchte diesen Vektor p3 nun in DG einsetzen, sodass DG(z,1,2,3,4,5,6,7,8,9) und im Anschluß daran die Funktion an vorgegebenen z Werte auswerten.
Hat hier jemand einen Tipp wie ich das effizient umsetzen kann. Ich benötige dies für meine Masterarbeit und hatte keine Matlabschulung oder ähnliches, deswegen ist vllt. meine Vorgehensweise auch total kompliziert. Nochmal in ein paar Stichworten was ich machen möchte:
1) Global die Ableitung bilden einer Summe von Gaussfunktionen (Variable z,a1,a2,a3 usw.)
2) In einer Schleife den Werte a1,a2,a3 usw. definierte Werte zuweisen, welche in einem Vektor stehen
3) Auswerten der Funktion an vorgebenen z Werten. Mein Code läuft wenn ich den Abschnitt "bisheriger Code" benutze, aber da hier in jedem Durchlauf die Ableitung neu gebildet wird (dieser Schritt ist total ineffizient, da wenn man Variablen benutzt sich die Ableitung ja nicht ändert, lediglich für unterschiedliche Werte für a1,a2,a3 kommen dann unterschiedliche Ableitungen raus). Problematisch wird es wenn ich die zweite Ableitung berechne, dann nimmt das in der Laufzeit Ausmaße an, welche nicht mehr aktzeptabel sind. Deshalb möchte ich die Berechnung der Ableitung/2.Ableitung global durchführen und in der Schleife lediglich für die Variablen Werte einsetzen.
Ich hoffe ich konnte meine Problemstellung gut genug erklären und bedanke mich schon einmal für jegliche Hilfe.
|
|
|
|
|
|
|
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 - 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.
|
|