Algebraische Berechnung < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 10:15 Fr 16.03.2012 | Autor: | ExxE7 |
Hallo
Ich weiß mittlerweile das es möglich ist mit dem Befehl "function" eine Funktion bzw. Berechnung in einem separatem m-File durchzuführen und dann die Ergebnisse in das ursprüngliche m-File zurückzugeben.
Mein momentanes Problem ist aber, dass ich einen Vektor zuerst 2 mal algebraisch ableiten/differenzieren muss und erst dann die Werte einfügen kann.
Wenn ich mit dem Befehl "function" verwende funktioniert das nicht, da "function" dem Vektor bereits vor dem Ableiten Werte zuweist und dieser sich nicht mehr ableiten/differenzieren lässt.
Bin für eure Hilfe sehr dankbar!
P.S. Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.....
|
|
|
|
Hallo,
> Hallo
> Ich weiß mittlerweile das es möglich ist mit dem Befehl
> "function" eine Funktion bzw. Berechnung in einem separatem
> m-File durchzuführen und dann die Ergebnisse in das
> ursprüngliche m-File zurückzugeben.
>
> Mein momentanes Problem ist aber, dass ich einen Vektor
> zuerst 2 mal algebraisch ableiten/differenzieren muss und
> erst dann die Werte einfügen kann.
> Wenn ich mit dem Befehl "function" verwende funktioniert
> das nicht, da "function" dem Vektor bereits vor dem
> Ableiten Werte zuweist und dieser sich nicht mehr
> ableiten/differenzieren lässt.
>
sorry, aber ich verstehe nicht, was du meinst. Was meinst du mit 'algebraisch ableiten': symbolisch ableiten (also z.B. [mm] $f(x)=\cos [/mm] x [mm] \Rightarrow f'(x)=-\sin [/mm] x$)? Oder numerisch ableiten anhand von differenzenquotienten?
Ich nehme an, Du meinst symbolisch. Was soll dann MATLAB machen und wo liegt Dein Problem?
gruss
Matthias
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:05 Fr 16.03.2012 | Autor: | ExxE7 |
Danke für die Antwort
Ja, ich habe die symbolisches Ableitung eines Vektors gemeint.
In meinem Fall handelt es sich um einen 9x1 Vektor und die 9 Zeilen sind mit trigonometrischen Funktionen gefüllt. Mittels "diff(h,phi)" kann ich den Vektor "h" nach "phi" ableiten soweit funktioniert noch alles.
Mein Problem ist aber folgendes, wenn ich im Skriptfile ein Funktionsfile aufrufe in dem der Vektor berechnet und dann abgeleitet wird, verlangt der Befehl "function" nach Input-Variablen.
Diese Variablen sind aber im Skriptfile mit Werten hinterlegt und die Werte werden scheinbar den variablen im Funktionsfile zugewiesen, dadurch funktioniert die symbolische Ableitung des Vektors im Funktionsfile nicht mehr.
Ich suche einen Weg wie ich den Vektor aus den Skriptfile aus symbolisch ableiten kann um ihm erst danach den im Skriptfile definierten Werten zuzuweisen.
Ich hoffe ich habe jetzt nicht noch mehr Verwirrung gestiftet... :)
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:26 Di 20.03.2012 | Autor: | QCO |
Kannst du vielleicht deinen Code mit einer Reduzierung auf die wesentlichen Schritte hier posten?
Hast du schon deinen Vektor zu einem symbolischen Ausdruck (siehe Matlab-Hilfe unter syms) gemacht?
So funktioniert's bei mir jedenfalls:
meineFunktion.m:1: | function [ ersteAbl, zweiteAbl ] = meineFunktion( derVektor )
| 2: | ersteAbl = diff(derVektor)
| 3: | zweiteAbl = diff(derVektor,2)
| 4: | end |
Befehle in der Konsole:1: | syms x
| 2: | meinVektor = [cos(x),sin(x),sin(x)*cos(x)]
| 3: | meineFunktion(meinVektor) | liefert als Ergebnis<span class="equation">ersteAbl =
[ -sin(x), cos(x), [mm] cos(x)^2 [/mm] - [mm] sin(x)^2]
[/mm]
zweiteAbl =
[ -cos(x), -sin(x), -4*cos(x)*sin(x)]
ans =
[ -sin(x), cos(x), [mm] cos(x)^2 [/mm] - [mm] sin(x)^2]
[/mm]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 08:37 Do 22.03.2012 | Autor: | ExxE7 |
Danke auch bei dieser Frage! ;)
Nach deinem Tipp in meiner anderen Frage hat auch das hier geklappt!
Ich bin folgender maßen vorgegangen:
1. Zuweisen der Werte zu den Variablen im Eingabe File
2. Durchführen der symbolischen Berechnung in einem "function" File
2.1 In dem "function" File habe ich die Variablen erneut mit "syms" definiert
3. Ersetzen der Variablen im Eingabe File gleich nach aufrufen der "function" mittels "subs" ("Name des Vektors")
Danke noch mal für die Hilfe.
|
|
|
|