Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#13

AW: Programm zu E funktionen ableiten

  Alt 26. Apr 2014, 01:05
Also erstmal solltest du dir dann mal überlegen, was genau der Benutzer einstellen soll. Im Falle einer e-Funktion könnte so eine Anforderung zum Beispiel so lauten:
Zitat:
Die Gleichung y = A * exp(B*x + C) ist im Programm fest definiert und nicht veränderbar. Der Benutzer soll nun für die Konstanten A, B und C Werte festlegen können. Nach einer solchen Festlegung kommen in der Gleichung nur noch x und y vor. Die Funktion soll anschließend für x-Werte zwischen -1 und 2 ausgerechnet werden, die Werte sollen als Text erscheinen.
Eine genaue Definition der Problems (bzw. Anforderungen an das Programm) ist für den Anfang schonmal wichtig.
Edit: ich sehe, in der Richtung ist gerade was gekommen

Aus diesen Anforderungen ergeben sich zum Beispiel für die Eingabemaske (das Formular) solche Sachen:
- 3 Eingabefelder, damit man die Werte eingeben kann
- 3 Labels, damit man auch weiß, was man wo eingibt
- ein Button, der "das Zeug berechnet" und ausgibt
- Ein Memo, das diesen Ausgabetext aufnimmt

(Oder eben entsprechende Konsoleneingaben und -ausgaben)

Unter der Annahme, dass die ersten zwei Punkte relativ klar sind, können wir das dritte Problem weiter aufgliedern:
  1. Die Eingaben liegen als String vor. Diese müssen in Kommazahlen konvertiert werden.
  2. Die Werte für A, B und C müssen in eine Formel integriert werden.
  3. Diese Formel soll jetzt für viele y-Werte ausgerechnet werden.

Strings in Kommazahlen konvertieren geht i.d.R. mit der Funktion strToFloat(). Das "integrieren" geschieht, indem die Formel weitgehend abgetippt wird. Um diese Formal dann wiederholt auszuwerten, bedarf es einer Schleife. Das ganze könnte ungefähr so aussehen:

Delphi-Quellcode:
procedure Calculate()
var
A, B, C, x, y: double;
i: Integer;
begin
A := strtofloat(Ediut1.Text); // Usw... für B und C noch

for i = -100 to 200 // Quasi Hunderstelschritte
begin
    x = i / 100; // x läuft damit von -1.00 über -0,99 und -0,98 bis 1,99 und 2,00
    y = A * exp(B*x + C); // Oh, die Formal konnte man ja echt einfach übernahmen

    // y sollte man an diueser Stelle ausgeben...
end
Damit hättest du die Funktion schonmal ein bisschen ausgewertet.
und nun muss ich ein programm schreiben das die e funktion 3 mal ableitet nustellen berechnet und die extremstellen berechnet..
Sowas macht man eigentlich vorher auf dem Papier. Es gibt zwar sogenannte Computer-Algebra-Systeme, aber das übersteigt dein Können bei weitem.
Also: Vorher die Formel auf dem papier ableiten und eine zweite Formel in dein Programm kodieren.

Zitat:
y = A * exp(B*x + C);
kann man ja relativ gut nach x ableiten:

Zitat:
y = A * B * exp(B*x + C);
Und das wäre dann noch eine Formel, die du nach dem gleichen Schema wieder auswerten kannst. Dazu einfach noch eine Zeile in der Schleife für die Berechnung und eine für die Ausgabe.
Bezüglich Extremstellen und Maxima/Minima ist die e-Funktion natürlich eher langweilig, da bräuchte man schon die Summe zweier e-Funktionen. Aber auch das sind Erkenntnisse, die man schneller gewinnt wenn man Papier und Stift (und vielleicht WolframAlpha) hernimmt. Dafür braucht man ja kein Programm programmieren.
  Mit Zitat antworten Zitat