DMUG-Archiv 2019

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: [Dmug] Smitt-Trigger

Nochmal Danke an alle, die Lösung von Peter gefällt mir auch.
Die Art der ‘Zwischenzuweisung’ war mir auch noch nicht bekannt. Da habe ich wieder viel gelernt.

Viele Grüße Sven.

> Am 21.10.2019 um 20:18 schrieb Susanne & Udo Krause <su.krause@XXXXXXX.ch>:
> 
> Hallo Peter,
> 
> allerdings braucht es mit Ihrer Definition die Nirgendanderswoimselbennotebookverwendung der Variable flast:
> 
> In[7]:= Clear[f]
> f // ClearAll
> f[x_ /; x > 3.2] := flast = 10
> f[x_ /; x < -0.8] := flast = -10
> f[x_] := flast;
> 
> In[30]:= f[5]
> Out[30]= 10
> 
> In[31]:= f[0]
> Out[31]= 10
> 
> In[32]:= flast = 99;
> f[0]
> Out[33]= 99
> 
> deshalb sollte man wenigstens eine kleine Sicherheit einbauen:
> 
> In[34]:= Clear[f1]
> f1 // ClearAll
> f1[x_ /; x > 3.2] := f1`flast = 10
> f1[x_ /; x < -0.8] := f1`flast = -10
> f1[x_] := f1`flast;
> 
> In[39]:= f1[5]
> Out[39]= 10
> 
> In[42]:= flast = 88;
> f1[0]
> Out[43]= 10
> 
> 
> Grüsse
> 
> Udo.
> 
> 
> Am 21.10.2019 um 04:50 schrieb Peter Klamser via demug:
>> Geht noch einfacher so:
>> 
>> f//ClearAll
>> f[x_/;x>3.2]:=flast=10
>> f[x_/;x<-0.8]:=flast=-10
>> f[x_]:=flast;
>> ListPlot[{Table[{x,f[x]},{x,-5,5,0.1}],Table[{x,f[x]},{x,5,-5,-0.1}]},Joined->True]
>> 
>> Viel Erfolg wünscht Peter
>> 
>> Am Mo., 21. Okt. 2019 um 01:25 Uhr schrieb Peter Klamser <klamser@XXXXXXX.com
>>> :
>>> f//ClearAll
>>> f[x_/;x>3.2]:=flast=10
>>> f[x_/;x<-0.8]:=flast=-10
>>> f[x_/;Or[x>=-0.8,x<=3.2]]:=flast;
>>> 
>>> ListPlot[{Table[{x,f[x]},{x,-5,5,0.1}],Table[{x,f[x]},{x,5,-5,-0.1}]},Joined->True]
>>> 
>>> Am So., 20. Okt. 2019 um 19:28 Uhr schrieb Sven Stoll via demug <
>>> demug@XXXXXXX.ch>:
>>> 
>>>> Liebe Liste,
>>>> 
>>>> ich verzweifle eine Funktion mit Gedächtnis zu bauen, die ähnlich einem
>>>> Smitt-Trigger eine Hysterese abbildet.
>>>> Konkret soll die Funktion den Funktionswert von 10 liefern, wenn das
>>>> Argument > +3.2 (Volt) ist, und -10, wenn das Argument kleiner als -0.8
>>>> (Volt) ist.
>>>> Im Bereich von -0.8 bis + 3.2 soll jeweils der letzte Wert (10 oder -10)
>>>> erhalten bleiben.
>>>> 
>>>> Das ist an und für sich kein Problem mit eine prozeduralen
>>>> Programmiersprache, aber wie macht man das mit Mathematica?
>>>> 
>>>> Habt jemand eine Idee? Meine Ansätze (MODULE, WHILE, IF) sind alle
>>>> gescheitert.
>>>> 
>>>> Viele Grüße
>>>> Sven
>>>> _______________________________________________
>>>> DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
>>>> http://www.mathematica.ch/mailman/listinfo/demug
>>>> Archiv: http://www.mathematica.ch/archiv.html
>>>> 
>> _______________________________________________
>> DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
>> http://www.mathematica.ch/mailman/listinfo/demug
>> Archiv: http://www.mathematica.ch/archiv.html

_______________________________________________
DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
http://www.mathematica.ch/mailman/listinfo/demug
Archiv: http://www.mathematica.ch/archiv.html

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html