C# Rechner soll für x eine Zahl finden damit in der Klammer 0 rauskommt?
Hallo
Kurze Frage, ich habe z.B. die Gleichung (Anfangsgleichung f(x)= 0,5x^3+2x^2)0=(0,5x+2)*x*x
Um die letzte Nullstelle heraus zu bekommen (die beiden x außen sind ja 0 und eine doppelte Nullstelle) muss ich in der Klammer für x eine Zahl einsetzen, damit auch in der Klammer 0 raus kommt.
Ich versuche gerade irgendwie einen Rechner für das Ausklammer Verfahren in C# zu schreiben (mit meinen Anfängerwissen xD). Nur hänge ich gerade daran das ich nicht weiß, wie ich das umsetzen soll, dass er die richtige Zahl (was er selbstständig machen soll) einsetzt um in der Klammer 0 zu bekommen. Habe dazu keine möglichen Lösungen gefunden wie man sowas umsetzen könnte.
Danke im voraus!
2 Antworten
Naja, das ist eben eine Gleichung: 0,5x + 2 = 0. Die willst du lösen. Da gibt es nur zwei Möglichkeiten:
a) ein komplexes, intelligentes Suchverfahren, das die Gleichung nach x auflöst (gibt es z.B. bei Mathematica, funktioniert nicht immer und ist manchmal zu langsam und sicher ganz und gar nichts für Programmier-Anfänger)
b) ein Näherungsverfahren, wie das Newton-Verfahren. Funktioniert auch nicht immer, ist aber schnell und relativ einfach zu programmieren. Bei komplizierteren Gleichungen könnte es sein, dass man das Newton-Verfahren mehrfach mit verschiedenen Startpunkten ausführen muss, um eine Nullstelle zu erhalten.
Ein Programm zu bauen, was so eine Gleichung automatisch auflösen kann, ist sehr schwierig. Das wirst du als Anfänger nicht so schnell hinkriegen. Was du aber sehr einfach machen kannst, ist die Rechnung für verschiedene X-Werte durchzuprobieren.
static void Main(string[] args)
{
for (int x = -50; x < 50; x++)
{
int x2 = x * x;
int x3 = x * x * x;
if ((0.5*x3 + 2*x2) == 0)
{
Console.WriteLine("X=" + x);
}
}
}
Das hat mir geholfen. Hab es aber umgeändert, weil ich ja schon 2x ausgeklammert habe und nur 0,5*x+2 in der Klammer rechnen brauchte.