Zwei Funktionen vergleichen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:21 Mi 14.09.2011 | Autor: | faltung |
Hi,
zur Zeit übe ich Integralrechnung. Um meine Ergebnisse zu überprüfen, lasse ich diese auch von Matlab lösen.
Leider sehen die Ergebnisse nicht immer auf den ersten Blick identisch aus, so dass ich noch einige Umformungen machen muss.
Gibt es eine Möglichkeit 2 Funktionen zu vergleichen und dass mir Matlab sagt, ob diese "identisch" sind? Wenn ja wie? Ich selbst habe ich schon mit if funktion1 == funktion2 probiert, allerdings klappt das nicht, da er dann bestimmt ähnlich wie bei einem String vergleicht. Ein Operator wie if funktion1 "equivalent" funktion2 konnte ich nicht finden.
Über Hilfe würde ich mich freuen!
Danke
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://www.gomatlab.de/viewtopic,p,75463.html
|
|
|
|
> Gibt es eine Möglichkeit 2 Funktionen zu vergleichen und
> dass mir Matlab sagt, ob diese "identisch" sind? Wenn ja
> wie? Ich selbst habe ich schon mit if funktion1 ==
> funktion2 probiert, allerdings klappt das nicht
Hallo,
für den Vergleich musst du natürlich die Funktionen mit
Variable nehmen, also
funktion1(x)==funktion2(x)
Du könntest z.B. auch die Differenzfunktion d mit
d(x):=funktion1(x)-funktion2(x) bilden und dann d
mit den verfügbaren Befehlen vereinfachen. Das
sollte dann auf die Nullfunktion führen.
LG Al-Chw.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:51 Mi 14.09.2011 | Autor: | faltung |
Hi,
danke für deine schnelle Antwort. Leider komme ich nicht ganz weiter.
Ich habe jetzt mal folgendes gemacht:
>> clear all;
>> syms a b;
>> f = 1/2*(a+b); g=0,5*a + 0,5*b;
Hiermit wollte ich die Funktionen f und g deklarieren um im Anschluss f == g machen zu können. Leider passiert bei der Eingabe von oben folgendes:
g =
0
ans =
5*a
>> f == g
ans =
0
Könntest du mir bitte ein konkretes Beispiel mit (f = 1/2*(a+b); g=0,5*a + 0,5*b;) geben? Danke für deine Hilfe!
|
|
|
|
|
> Ich habe jetzt mal folgendes gemacht:
>
> >> clear all;
> >> syms a b;
> >> f = 1/2*(a+b); g=0,5*a + 0,5*b;
>
> Hiermit wollte ich die Funktionen f und g deklarieren um im
> Anschluss f == g machen zu können. Leider passiert bei der
> Eingabe von oben folgendes:
>
> g =
> 0
>
> ans =
> 5*a
>
> >> f == g
>
> ans =
> 0
Ich dachte, du wolltest Funktionen vergleichen.
Oben hast du aber gar keine Funktionen f(a,b) und g(a,b),
sondern nur zwei Terme definiert.
Ferner wird das Komma offenbar gar nicht als Dezimalkomma
interpretiert. Du solltest wohl Dezimalpunkte verwenden.
LG Al-Chw.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:19 Do 15.09.2011 | Autor: | faltung |
Hi,
danke für die Antwort und sorry für die falsche Ausdrucksweise :)
|
|
|
|
|
Versuchs mal mit:
f=1/2*(a+b);
g=0.5*a+0.5*b;
simple(f-g)
Wenn da 0 rauskommt, sind die beiden Terme gleich. Wenn nicht, sind sie vielleicht für Matlab zu kompliziert und gleich oder unterschiedlich.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:19 Do 15.09.2011 | Autor: | faltung |
Hi,
danke für diese tolle Antwort :) Das hat funktioniert!
Grüße
|
|
|
|