Exponenten bei Potenzen multiplizieren

Status
Nicht offen für weitere Antworten.

Plisso

Mitglied
Hallo,

folgendes Problem.
Ich möchte den Sinus mit Hilfe der Taylorreihenentwicklung berechnen.
Mit der Methode Math.pow() funktioniert auch alles, aber wie geht das ohne????
Ich habe im folgenden Code die Methode potenz() eingefügt. Diese würde ich gerne durch Math.pow() ersetzen. Aber wie kann ich dort den Exponent mit (2*i+1) multiplizieren???
Habe schon diverse Dinge probiert, komme aber auf keine brauchbare Lösung.

Vielleicht hat jemand eine Idee.

Danke

Code:
public static double aprox(int x, int n){
		
		double sum=0;
		for(int i=0;i<=n;i++){
			
			sum+=( (Math.pow(x,2*i+1)) / fakul(2*i+1)) * Math.pow(-1,i);
			
		}
		return sum;

	}
	public static int fakul(int n){
		int fak=1;
		for(int i=1;i<=n;i++){
			fak*=i;
		}
		return fak;
	}
	
	/*public static int potenz(int x,int n){
		int pot=1;
		for(int i=1;i<=n;i++){
			pot*=x;
			
		}
		return pot;
	} 
	
	*/
 
Ich fürchte, ich verstehe Dein Problem nicht ganz. Du musst doch nur (2*i + 1) für Dein n an potenz(int x, int n) übergeben. Also potenz(x, 2*i+1) ???:L
 
habe ich auch gemacht. jedoch erhalte ich verschiedene Ergebnisse.
z.B.: x=2, n=2.
Ergebnis bei Math.pow()=0.933333333333
bei potenz()=1.0
 
Spitzenaussage ohne lauffähigen Beispielcode/ nähere Erklärungen,

aber gerne denkt man sich selber die fehlenden Ecken zu Ende:
Java:
public class Test
{
    public static void main(String[] args)
    {

        System.out.println(Math.pow(2, 3) / 5); // 8.0 / 5 = 1.6 --- double durch int = double
        System.out.println(potenz(2, 3) / 5);   // 8   / 5 = 1   --- int durch int = int

    }

    public static int potenz(int x, int n)
    {
        int pot = 1;
        for (int i = 1; i <= n; i++)
        {
            pot *= x;

        }
        return pot;
    }


}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben