www.mikrocontroller.net

Forum: Offtopic Computerprogramm für Mathematik gesucht.


Autor: A. R. (redegle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte Fragen ob mir jemand ein Computerprogramm empfehlen kann, 
womit man diverse mathematische Funktionen analysieren kann.

Z.B.
-Gleichungen umstellen
-Variablen aus einer Funktion Berechnen
z.B. ln((55,9-C) / (80-C)) = 0,5 * ln((41,5-C) / (80-C))  Was ist C
-Funktionen grafisch ausgeben
-Integral berechnen.
Also die Stammfunktion ausgeben, nicht das Ergebniss annähern.

Habe schon per google gesucht aber noch nichts vielversprechendes 
gefunden.

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür kann man schön www.wolframalpha.com missbrauchen. Oder eben 
Programme wie Mathematica, Maple etc. Es geht auch Matlab mit 
entsprechenden Toolboxen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder Opensource, etwa
- GNU R (Statistik)
- Octave (Algebra und son Zeugs)
- Macsyma bzw. Maxima (Algebra)

Autor: Daniel -------- (root)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so etwas wie

ln((55,9-C) / (80-C)) = 0,5 * ln((41,5-C) / (80-C))  Was ist C?

können meines wissenes weder

- GNU R (Statistik)

noch

- Octave (Algebra und son Zeugs)

Kann Maxima tatsächlich hier umstellen?

Ich nutze für solche Gleichungsumstellungen und Lösung/Simulation
der Differentialgleichungen die Modellierungssprache Modelica.
OpenModelica ist eine freie/opensource Umgebung.

http://www.modelica.org/
http://de.wikipedia.org/wiki/Modelica

Viel Spass beim Ausprobieren.

Autor: A. R. (redegle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mir gerade mal Maxima (wxMaxima) herruntergeladen.
Dort ist der log auch der ln ist das im Englischen so standart?

Integral aus 1/x --> log(x)

ln((55,9-C) / (80-C)) = 0,5 * ln((41,5-C) / (80-C))

Habe ich Gestern mit nem Freund zusammen per Hand gelöst. Deswegen 
suchte ich u.a. ein Programm um ein solches Ergebnis zu kontrollieren.

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist Standard. Wenn du "unseren" log zur Basis 10 haben willst, 
brauchst du die log10 -Funktion.
Obiges Beispiel in wolframalpha:
 
ln((55.9-x)/(80-x))=0.5*ln((41.5-x)/(80-x))

Autor: A. R. (redegle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Vorschläge

Ich muss sagen Wolfram|Alpha ist sehr interessant.
Vor allem die grafische Darstellung beider Funktionen.

Den Rest werde ich mir später genauer anschauen.

Maxima kann, so wie ich es sehe die Funktion
ln((55.9-x)/(80-x))=0.5*ln((41.5-x)/(80-x))
nicht umstellen. Kann auch sein, dass ich noch nicht weiß wie.

Autor: Daniel -------- (root)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
jetzt hatte ich etwas Zeit das Problem mal auszuprobieren
es geht tatsächlich, wie ich vermutet habe. Trotzdem sollte
man aufpassen, ob die nummerisch gefundene Lösung die einzigste ist.
package equations

  import Modelica.Math.*;

  model X
    Real x;
  equation
    log((55.9-x)/(80-x))=0.5*log((41.5-x)/(80-x));
  end X;

end equations;

Autor: Daniel -------- (root)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
um vielleicht ein anderes Beispiel zu zeigen
damit war ich zB heute beschäftigt

da ich faul war ein lineares System mit 3 Gleichungen
3 Unbekannten aufzulösen, habe ich es schnell eingetippt.

das Gute an Modelica ist, man kann die Modelle weiter
verfeinern, wenn man Lust dazu hat. Zum Beispiel könnte
man Versorgungspannung als Parameter hinzufügen, bei
deren Überschreitung vout in Sättigung geht. Also
einen Limiter implementieren. Oder Widerstandsdrift
in Abhängigkeit von Temperatur implementieren, die
wiederum eine Funktion von u*i ist. Obwohl Spice
wahrscheinlich genauere Ergebnisse liefert, sind Spicemodelle
eine BlackBox. In Modelica lassen sich die Zusammenhänge schön
explizit ausdrücken, ohne aber das man selber die Dinge
danach nummerisch durchkauen muss.


Die Formel für Verstärkung beim 2-Opamp Instrumentation
Amplifier soll bestättigt werden.

http://de.wikipedia.org/w/index.php?title=Datei:In...
package amplifier

  model ina
    parameter Real R1(unit = "V/A") = 100;
    parameter Real R2(unit = "V/A") = 200;
    parameter Real Rgain(unit = "V/A") = 400;
    input Real v1(unit = "V");
    input Real v2(unit = "V");
    output Real vout(unit = "V");
    Real vx(unit = "V");
    Real i(unit = "A");
  equation
    (vout-v2)/R2 + (v1-v2)/Rgain + (vx-v2)/R1 = 0;
    (v2-vx)/R1 + i + (v1-vx)/R1 = 0;
    (0-v1)/R2 + (vx-v1)/R1 + (v2-v1)/Rgain = 0;
  end ina;
  
  model ina_tb "instrumentation amplifier testbench"
    Real v1;
    Real v2;
    Real vout;
    ina amp(v1=v1, v2=v2, vout=vout);
  equation
    v1 = 1;
    v2 = 3;
  end ina_tb;

end amplifier;

Autor: Reg Profi (regprofi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte bei den zu lösenden Gleichungen zwischen analytisch lösbaren 
und nicht analytisch lösbaren unterscheiden. Für erstere empfiehlt sich 
Maple/Mathematica/Maxima. Für die anderen irgendwas Numerisches. Von 
Maple weiß ich, dass es das auch kann, Mathematica vermutlich auch.

Allerdings sollte man mit diesen Programmen etwas vorsichtig sein. 
Meiner Erfahrung nach gibt es  nur einen vernünftigen Anwendungsfall und 
zwar dann, wenn die Gleichungen so groß/lang/breit werden, dass man ewig 
daran per Hand beschäftig wäre. Gefährlich wird es dann, wenn man 
Gleichungen lösen lassen will, die man selbst nicht lösen kann, also 
keinen Ansatz findet. Das endet meist nicht gut.

Mit ein bisschen Training bekommt man auch "komplexere" Gleichungen von 
Hand problemlos gelöst. Für die im Thread erwähnte Gleichung dauert ja 
das Öffnen und Eintippen in ein Programm schon länger als das 
Selbstlösen.

Also lieber erst denken, dann tippen. ;-)

Autor: Jürgen R. (hobbyloeter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also lieber erst denken, dann tippen. ;-)

Genau meine Meinung!
Hab letztens auch schwer mit den CAS-Programmen gekämpft. Ging 
eigentlich nur um ne recht triviale Op-Schaltung. Aber ich meinte, ich 
müßte die Gleichung irgendwie mit MathCad & Co. lösen. Hat ewig 
gedauert, bis ich das dann endlich drin hatte. Und dann hat das doofe 
MathCad auch noch ganz abenteuerlich Lösungen ausgespuckt...
Noch schlimmer war's allerdings mit MATLAB...oweia... ;-)

Ergo:
Hirn einschalten und Bleistift in die Hand...wie die alten Römer ;-)

Nützlichr Nebeneffekt:
Als ich meine Op-Schaltung von Hand gelöst habe, hatte ich sogar noch 
viel mehr über ihr Übertragungsverhalten gelernt, das mir diese 
komischen Programme wohl eher verschwiegen hätten!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Yahoo-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.