Taylorpolynom berechnen

tanzverfuehrung

Bekanntes Mitglied
Hallo ihr lieben, also ich wollte mir ein Programm schreiben,dass mir die Taylorpolynome ausgibt.
Das es nicht ganz so schwer wird, wollt ich es erstmal mit der expotential Funktion ausprobieren ,um es danach zu erweitern. Weil diese Funktion in Ihren Ableitungen immmer gleich bleibt.:toll:
Mein problem ist, das ja eine funktion auch varaiblen drin hat wie z.b (x^2+3) und wie kann ich das nun am besten darstellen???

Java:
package nachhilfe;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Taylorpolynom {
	static String x = "x";
	static String y = "";
String polynom = " ";
	static int entwicklugsPunkt, ordnung;

	public String berechneTaylorPolynom(int entwicklungsPunkt, int ordnung) {
		Fakultaet fak = new Fakultaet();

		double exponentialfunktion = Math.exp(entwicklugsPunkt);
		for (int i = 0; i <= ordnung; i++) {
			int fakultaet = fak.fakultaet(ordnung);
			y =  (exponentialfunktion / fakultaet) * Math.pow(x - entwicklungsPunkt, ordnung);
			polynom = polynom +" + "+ y;
}
		return polynom;
	}

	public static void main(String args[]) {
		System.out.println("In welchem Punkt(ganzzahlige Zahl) soll der Taylorpolynom entwickelt werden??");
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		try {
			entwicklugsPunkt = reader.read();
		}
		catch (IOException e) {
			System.out.println("Der entwicklungsPunkt " + entwicklugsPunkt + "ist keine ganzzahlige Zahl!!Message: " + e.getMessage());
		}
		System.out.println("Und bitte geben Sie die Ordnung(ganzzahlige Zahl) an, nach der entwickelt werden soll: ");
		try {
			ordnung = reader.read();
		}
		catch (IOException e) {
			System.out.println("Die Ordnung " + ordnung + " ist keine ganzzahlige Zahl!!Message: " + e.getMessage());
		}
		Taylorpolynom taylor = new Taylorpolynom();
		taylor.berechneTaylorPolynom(entwicklugsPunkt, ordnung);
	}
}

mit dieser Zeile kommt der Compiler nicht klar:
y =(exponentialfunktion / fakultaet) * Math.pow(x - entwicklungsPunkt, ordnung);

Und ist ja auch logisch, das man x nicht potenzieren kann...
wie löse ich nun das problem???????????;:)bahnhof:
 
Zuletzt bearbeitet:

tanzverfuehrung

Bekanntes Mitglied
Was spuckt der Compiler denn für einen Fehler aus? Kannst du anhand des Fehlers dein Problem erkennen?
The operator - is undefined for the argument type(s) String, int

Ja also ich verstehe das Problem.ICh kann ja kein x potenzieren, da will er ja eine ganze Zahl und kein String...Nur wie kann ich das denn realisieren?
 
Zuletzt bearbeitet:

Marco13

Top Contributor
y ist ein String, und du versuchst, ihm ein double zuzuweisen. Entweder
y = String.valueOf(derGanzeKramDa);
oder überlegen, wie man das geschickter, übersichtlicher, und vor allem: OHNE static Variablen schreiben kann...
 

tanzverfuehrung

Bekanntes Mitglied
y ist ein String, und du versuchst, ihm ein double zuzuweisen. Entweder
y = String.valueOf(derGanzeKramDa);
oder überlegen, wie man das geschickter, übersichtlicher, und vor allem: OHNE static Variablen schreiben kann...

das ist ja bis jetzt noch nicht mal mein Problem, sondern die MAth.pow macht probleme, weil pow zwei double werte erwartete und es aber ein String dabei ist!!!
x ist ein String!!!!!!!!!!!
Math.pow(x - entwicklungsPunkt, ordnung)
 

tfa

Top Contributor
das ist ja bis jetzt noch nicht mal mein Problem, sondern die MAth.pow macht probleme, weil pow zwei double werte erwartete und es aber ein String dabei ist!!!
x ist ein String!!!!!!!!!!!

Math.pow ist völlig unschuldig. Wie will man auch Strings potenzieren? Das Problem liegt in deinem Ansatz. Mir ist auch nicht so richtig klar, was du eigentlich machen willst mit den Strings. Rechnen kann man jedenfalls nur mit Zahlen.
 

AlexSpritze

Bekanntes Mitglied
Bitte unbedingt mehr Satzzeichen benutzen. Das motiviert ungemein dir zu helfen.

Was soll denn dein
Code:
x
sein? Einfach nur eine Variable?

Und was genau soll am Ende rauskommen? Gib mal ein Beispiel.
 

tanzverfuehrung

Bekanntes Mitglied
Bitte unbedingt mehr Satzzeichen benutzen. Das motiviert ungemein dir zu helfen.

Was soll denn dein
Code:
x
sein? Einfach nur eine Variable?

Und was genau soll am Ende rauskommen? Gib mal ein Beispiel.

x ist eine Variable, die erst Später im Programm eingeben werden soll.
Also später sollen die Taylorpolynome mit verschiedenen x ausrechnen!
jetzt für die Exponentialfunktion f(x) =exp(x) soll das Taylorpolynom ausgerechnet werden und als String?! zurück gegeben werden.
z.b. entwickelt im Punkt 0
und bis zur 4. Ordnung
ergebnis:
1 + x + 1/2*x^2 + 1/6*x^3 + 1/14*x^4



Aber jetzt ist mir selber aufgefallen, das ich wahrscheinlich eine Methode
-stringTaylorPolynom();
Wo ich den String selbst zusammen bauen muss, mit den zeichen (z.b.^) und dann noch eine MEthode, wo ich den TaylorPolynom berechne, implementieren muss!ODER?
-calculateTylorPolynom!!!
 

tanzverfuehrung

Bekanntes Mitglied
also die Methode die mir meinen Taylorpolynom nun ausgibt, habe ich hin bekommen
Java:
public String stringTaylorPolynom(int entwicklungsPunkt, int ordnung){
		
		for (int i = 0; i <= ordnung; i++) {
			int fakultaet = fak.fakultaet(i);
			if(!polynom.isEmpty())
			polynom =polynom+" + ("+ exponentialfunktion+"/"+fakultaet+") * (x-"+entwicklugsPunkt+")^"+i;
			else polynom ="("+exponentialfunktion+"/"+fakultaet+") * (x-"+entwicklugsPunkt+")^"+i;
		}
		return polynom;
	}
funktioniert wunderbar!!!und ich bin stolz auf mich:toll:

so jetzt werden ich die Methode implementieren, die mir das Taylorpolynom ausrechnet, für verschiedene x:toll::toll::applaus:
 

tanzverfuehrung

Bekanntes Mitglied
das aufsummieren funktioniert nicht und ich verstehe nicht wieso????????
ich habe es schon tausend mal durch debuggt
also wenn ich für den entwicklungpunkt '= 0 nehme
ordnung=3; und x=3;
dann müsste eigentlich raus kommen:
1 + 3 + 4,5 + 4,5
= 13
Aber irgendwie kommt raus:
1 + 3 + 0 + 0
= 4


WIESO????
weil die werte stimmen alle immer,irgendwie muss er was beim potenzieren oder so falsch machen?????!
???:L???:L???:L

kann mir eventuell jemand helfen?
Java:
	/**
	 * Berechnet uns den Taylorpolynom, mit dem übergebenen x
	 * 
	 * @param entwicklungsPunkt
	 * @param ordnung
	 * @param x
	 * @return
	 */
	public double berechneTaylorPolynomForX(int entwicklungsPunkt, int ordnung, int x) {
		int base = x - entwicklungsPunkt;
		for (int exponent = 0; exponent <= ordnung; exponent++) {
			int fakultaet = fak.fakultaet(exponent);
			ergebnis = (exponentialfunktion / fakultaet) * (Math.pow(base, exponent));
			lösung = lösung + ergebnis;
			
		}
		return lösung;
	}
 

jgh

Top Contributor
könntest du daraus bitte mal ein KSKB basteln...
btw. Variablennamen mit Umlauten wie [c]lösung[/c] sehen nicht nur schei.... aus, sondern können auch später einige Probs verursachen
 

tanzverfuehrung

Bekanntes Mitglied
Java:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Taylorpolynom {
	String polynom = "";
	static int entwicklugsPunkt, ordnung, exponentialfunktion, x;
	Fakultaet fak = new Fakultaet();
	double ergebnis;
	private double entgültigesErgebnis;
	private double lösung;

	/**
	 * Gibt mir den Taylapolynom wieder
	 * 
	 * @param entwicklungsPunkt
	 * @param ordnung
	 * @return taylorpolynom
	 */
	public String stringTaylorPolynom(int entwicklungsPunkt, int ordnung) {

		for (int i = 0; i <= ordnung; i++) {
			int fakultaet = fak.fakultaet(i);
			if (!polynom.isEmpty())
				polynom = polynom + " + (" + exponentialfunktion + "/" + fakultaet + ")*(x-" + entwicklugsPunkt + ")^" + i;
			else
				polynom = "(" + exponentialfunktion + "/" + fakultaet + ")*(x-" + entwicklugsPunkt + ")^" + i;
		}
		return polynom;
	}

	/**
	 * Berechnet uns den Taylorpolynom, mit dem übergebenen x
	 * 
	 * @param entwicklungsPunkt
	 * @param ordnung
	 * @param x
	 * @return
	 */
	public double berechneTaylorPolynomForX(int entwicklungsPunkt, int ordnung, int x) {
		int base = x - entwicklungsPunkt;
		for (int exponent = 0; exponent <= ordnung; exponent++) {
			int fakultaet = fak.fakultaet(exponent);
			ergebnis = (exponentialfunktion / fakultaet) * (Math.pow(base, exponent));
			lösung = lösung + ergebnis;
			
		}
		return lösung;
	}

	public static void main(String args[]) {
		System.out.println("In welchem Punkt(ganzzahlige Zahl) soll der Taylorpolynom entwickelt werden??");
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		try {
			entwicklugsPunkt = Integer.parseInt(reader.readLine());
			exponentialfunktion = (int) Math.exp(entwicklugsPunkt);
		}
		catch (Exception e) {
			System.out.println("EXCEPTION! Der entwicklungsPunkt ist keine ganzzahlige Zahl!!Message: " + e.getMessage());
		}
		System.out.println("Und bitte geben Sie die Ordnung(ganzzahlige Zahl) an, nach der entwickelt werden soll??");
		try {
			ordnung = Integer.parseInt(reader.readLine());
		}
		catch (Exception e) {
			System.out.println("EXCEPTION! Die Ordnung ist keine ganzzahlige Zahl!!Message: " + e.getMessage());
		}
		System.out.println("Und geben Sie ein Wert für x ein [f(x)]:");
		try {
			x = Integer.parseInt(reader.readLine());
		}

		catch (Exception e) {
			System.out.println("EXCEPTION! Die Ordnung ist keine ganzzahlige Zahl!!Message: " + e.getMessage());
		}

		Taylorpolynom taylor = new Taylorpolynom();
		System.out.println("Taylorpolynom: ");
		System.out.println(taylor.stringTaylorPolynom(entwicklugsPunkt, ordnung));
		System.out.println("Und das Ergebnis dazu: ");
		System.out.println(taylor.berechneTaylorPolynomForX(entwicklugsPunkt, ordnung, x));
	}
}

Java:
public class Fakultaet {

	public int fakultaet(int n) {
		int grenze = n;
		if (n == 0)
			return 1;
		for (int i = 1; i < grenze; i++) {
			n = n * i;
		}
		return n;
	}
}

hier das ist das ganze Programm...ist ja nicht viel...hoffe hilft dir weiter
 

jgh

Top Contributor
nur mal schnell rübergeschaut, dein Problem liegt darin das du rechenoperationen mit [c]int´s[/c] durchführst, aber gerade da eigentlich doubles bräuchtest. dadurch werden die Terme auf Ganzzahlen gerundet und dein Ergebnis erhält falsche Werte.
Habe mal -der einfachkeitshalber- alle deine int´s in double geändert und voilà es kommt das raus, was du willst.

Java:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Taylorpolynom {
	String polynom = "";
	static double entwicklugsPunkt, ordnung, exponentialfunktion, x;
	Fakultaet fak = new Fakultaet();
	double ergebnis;
	private double entgültigesErgebnis;
	private double lösung;

	/**
	 * Gibt mir den Taylapolynom wieder
	 * 
	 * @param entwicklungsPunkt
	 * @param ordnung
	 * @return taylorpolynom
	 */
	public String stringTaylorPolynom(double entwicklungsPunkt, double ordnung) {

		for (int i = 0; i <= ordnung; i++) {
			int fakultaet = fak.fakultaet(i);
			if (!polynom.isEmpty())
				polynom = polynom + " + (" + exponentialfunktion + "/"
						+ fakultaet + ")*(x-" + entwicklugsPunkt + ")^" + i;
			else
				polynom = "(" + exponentialfunktion + "/" + fakultaet + ")*(x-"
						+ entwicklugsPunkt + ")^" + i;
		}
		return polynom;
	}

	/**
	 * Berechnet uns den Taylorpolynom, mit dem übergebenen x
	 * 
	 * @param entwicklungsPunkt
	 * @param ordnung
	 * @param x
	 * @return
	 */
	public double berechneTaylorPolynomForX(double entwicklungsPunkt,
			double ordnung, double x) {
		int base = (int) (x - entwicklungsPunkt);
		for (int exponent = 0; exponent <= ordnung; exponent++) {
			int fakultaet = fak.fakultaet(exponent);
			ergebnis = (exponentialfunktion / fakultaet)
					* (Math.pow(base, exponent));
			System.out.println(ergebnis);
			lösung = lösung + ergebnis;

		}
		return lösung;
	}

	public static void main(String args[]) {
		System.out
				.println("In welchem Punkt(ganzzahlige Zahl) soll der Taylorpolynom entwickelt werden??");
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));
		try {
			entwicklugsPunkt = Integer.parseInt(reader.readLine());
			exponentialfunktion = (int) Math.exp(entwicklugsPunkt);
		} catch (Exception e) {
			System.out
					.println("EXCEPTION! Der entwicklungsPunkt ist keine ganzzahlige Zahl!!Message: "
							+ e.getMessage());
		}
		System.out
				.println("Und bitte geben Sie die Ordnung(ganzzahlige Zahl) an, nach der entwickelt werden soll??");
		try {
			ordnung = Integer.parseInt(reader.readLine());
		} catch (Exception e) {
			System.out
					.println("EXCEPTION! Die Ordnung ist keine ganzzahlige Zahl!!Message: "
							+ e.getMessage());
		}
		System.out.println("Und geben Sie ein Wert für x ein [f(x)]:");
		try {
			x = Integer.parseInt(reader.readLine());
		}

		catch (Exception e) {
			System.out
					.println("EXCEPTION! Die Ordnung ist keine ganzzahlige Zahl!!Message: "
							+ e.getMessage());
		}

		Taylorpolynom taylor = new Taylorpolynom();
		System.out.println("Taylorpolynom: ");
		System.out.println(taylor
				.stringTaylorPolynom(entwicklugsPunkt, ordnung));
		System.out.println("Und das Ergebnis dazu: ");
		System.out.println(taylor.berechneTaylorPolynomForX(entwicklugsPunkt,
				ordnung, x));
	}
}

class Fakultaet {

	public int fakultaet(int n) {
		int grenze = n;
		if (n == 0)
			return 1;
		for (int i = 1; i < grenze; i++) {
			n = n * i;
		}
		return n;
	}
}
 

jgh

Top Contributor
gerne, sowas macht dann ja auch Spaß.
eines darf man nie machen...an sich selbst zweifeln :D
und dein Programm macht ja grundsätzlich das, was es soll... ;) also kannst du stolz auf dich sein :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
bittedanke Wie benötigte Bits berechnen (Huffmankodierung) Allgemeine Java-Themen 7
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
ReinerCoder Kombinationsmöglichkeiten der Textfelder berechnen Allgemeine Java-Themen 14
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
MiMa Prüfziffer einer EAN Nummer berechnen Allgemeine Java-Themen 4
C Java Script Pause berechnen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
N Das große O berechnen Allgemeine Java-Themen 2
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
The Pi Anzahl der Gewichtscheiben berechnen Allgemeine Java-Themen 11
B Hirsch-Index berechnen Allgemeine Java-Themen 11
B Umfang berechnen für Polygone Allgemeine Java-Themen 18
C pplet Mitelwert Berechnen Allgemeine Java-Themen 0
J Primzahlen berechnen Allgemeine Java-Themen 13
K F-Verteilung FINV in Java berechnen Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
C mp3-Lied Dauer berechnen Allgemeine Java-Themen 1
L Winkel eines Vektors berechnen [Anfängerprob] Allgemeine Java-Themen 5
R Threads Taskzeit berechnen Allgemeine Java-Themen 12
S Eclipse Entfernung berechnen Allgemeine Java-Themen 16
T Kreis und sekant schnittpunkt berechnen mit latitude longitude Allgemeine Java-Themen 4
B Java Diffentialgleichungen berechnen Allgemeine Java-Themen 3
W 2D-Grafik Kontrast eines Bildes berechnen Allgemeine Java-Themen 6
S Erste Schritte Mittelsenkrechte berechnen Allgemeine Java-Themen 3
P Matrix Kurtosis berechnen Allgemeine Java-Themen 40
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
S Teiler Berechnen Allgemeine Java-Themen 6
Kr0e Differenzen von Bildern berechnen - Remote control Allgemeine Java-Themen 2
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
J bewegliche Feiertage berechnen Allgemeine Java-Themen 7
W Rechnungsbetrag berechnen Allgemeine Java-Themen 2
reibi Checksumme für ein File berechnen Allgemeine Java-Themen 12
M Integral berechnen Allgemeine Java-Themen 5
D Primzahlen berechnen funktioniert nicht Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
Developer_X Prozentdifferenz berechnen. Allgemeine Java-Themen 13
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
M Monatliche Zeitspannen berechnen Allgemeine Java-Themen 3
Ark Arkussinus effizient berechnen Allgemeine Java-Themen 12
Iron Monkey Potenzzahlen mit shiftLeft berechnen? Allgemeine Java-Themen 13
N Rechenzeit berechnen? Allgemeine Java-Themen 3
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
T ungerade zahlen berechnen Allgemeine Java-Themen 3
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
G ganzzahlige Potenz schnell berechnen Allgemeine Java-Themen 4
M Lautstärke von Audiosignal live berechnen Allgemeine Java-Themen 7
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
T Arbeitsstunden berechnen Allgemeine Java-Themen 8
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
V Setter zum Berechnen nutzen? Allgemeine Java-Themen 5
G Richtung berechnen anhand Koordinaten Allgemeine Java-Themen 3
P Dauer (Tage, Stunden, Minuten, Sekunden) berechnen Allgemeine Java-Themen 5
D Mittelwert einer Menge von Doubles berechnen Allgemeine Java-Themen 3
P Winkel berechnen. Allgemeine Java-Themen 3
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
B Was würdet ihr dafür berechnen? Allgemeine Java-Themen 7
T MessageDigest von einem char[] berechnen Allgemeine Java-Themen 7
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
E CRC 8 Berechnen Allgemeine Java-Themen 1
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
B Ellipsen Kreisbahnen berechnen! Allgemeine Java-Themen 11
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
clemente lanman und nt password berechnen Allgemeine Java-Themen 7
J an und bn berechnen Allgemeine Java-Themen 5
F Datum mit anzahl tagen berechnen Allgemeine Java-Themen 3
B Differenz in Monaten berechnen --- DateDiff()? Allgemeine Java-Themen 12
B Distance berechnen! Allgemeine Java-Themen 7
D Feiertage berechnen Allgemeine Java-Themen 8
F vergangene Zeit berechnen Allgemeine Java-Themen 6
R Zeitspannen berechnen Allgemeine Java-Themen 7
N 2 hoch 100 berechnen Allgemeine Java-Themen 8
P Punkt berechnen Allgemeine Java-Themen 4
C x-te Wurzel berechnen Allgemeine Java-Themen 2
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben