# Taylor Reihe für Sinus



## asddsa (12. Nov 2011)

Hallo, habe versucht eine Taylor Reihe für Sinus aufzustellen, klappt leider aber nur bis x=6, kann mir jemand evtl. helfen und sagen, inwieweit mein Code abgeändert werden muss? Ach ja, die Reihenentwicklung soll nur bis n=8 gehen.


```
public class sinTaylor {
	
	static double Fakultät(double n){
		double sum = 1;
		
		for(int i = 1; i <=n; i++)	{
			sum = sum * i;
		}
		
		return  sum;
	}	
	public static double sinTaylor(double x){
		double sum = 0;
		double sum1 = 0;
		int n=8;
		for(int i = 0; i <= n; i++)	{
			double zwein= 2*i+1;
			sum1 = Math.pow(-1, i) * Math.pow(x, zwein) / Fakultät(zwein);
			sum = sum1 + sum;
		}
		
		return sum;
	}
	public static void main(String[] args){
		
		double y=6;
		System.out.println("Test: calcSum");		
		System.out.println("sinTaylor " + sinTaylor(y) + ", sin: " + Math.sin(y) );
	}
}
```


----------



## Marco13 (12. Nov 2011)

Was heißt "klappt" - das Ergebnis stimmt ja, ist nur etwas ungenau (mit größerem 'n' wird's auch genauer...)


----------



## asddsa (13. Nov 2011)

"Klappt" bedeutet in dem Fall, dass mein geschriebener Code nur bis x=6 mit "Math.sin(x)" übereinstimmt.


----------



## Marco13 (13. Nov 2011)

Eine perfekte Übereinstimmung bis auf die letzte Stelle braucht man nicht zu erwarten. Darüber hinaus hängt die Genauigkeit (d.h. wie viele Stellen "richtig" sind) vom 'n' ab. Bei n=6 stimmen nur die ersten 2 Nachkommastellen, bei n=8 schon ein paar mehr... so ist das eben....


----------

