Sinus näherung

tekknika

Mitglied
Moin
ich hab versucht eine näherung für sinus in java zu erstllen, jedoch wird mit immer nur der wert für pi/4 ausgegeben und nicht der für sinus(pi/4).


public class ArrayListe {

public static void main(String[] args) {

SIN(pi());

}
//näherung für sinus:
public static double SIN(double pi) {
double Sin=pi;
double sign = -1;
int b = 0;
for(int i=0; i<1000; i++) {

Sin=pi+sign*(Math.pow(pi,(3+b))/Fak());
b=b+2;
sign = -sign;
System.out.println(Sin);
}

return Sin;

}
//fakultät berechnung:
public static double Fak() {
double fakultaet = 1;

for(int i = 3; i<=400; i=i+2) {
fakultaet = fakultaet*i;
}
return fakultaet;
}


//näherung für pi:
public static double pi(){

double Ergebnis = 1;
double sign = -1;
double b =3;
double c = 200000;
for(double i=0; i <c; i++) {
//System.out.println(b);

Ergebnis = Ergebnis + sign*(1/b);
b=b+2;

sign = -sign;

}
double PI;
PI=(Ergebnis);
return PI;
}
}
 

tekknika

Mitglied
Ich habe jetzt erst mal meine fakultaet methode überarbeitet:


//fakultät berechnung:
public static double Fak() {
double fakultaet = 1;
int b = 0;

for(int i = 2; i<=10; i++) {
b=i%2;
fakultaet = fakultaet*i;
if(b!=0) {

System.out.println("der wert für i ist :"+i);
System.out.println(fakultaet);
}
}return fakultaet;

}

liefert folgende ausgabe:

der wert für i ist :3
6.0
der wert für i ist :5
120.0
der wert für i ist :7
5040.0
der wert für i ist :9
362880.0

funktioniert also aber wie bekomme ich jetzt diese werte in meine sinus methode??
 

tekknika

Mitglied
Ok ich hab es glaub ich :
public class ArrayListe {

public static void main(String[] args) {


System.out.println(SIN());
//System.out.println(pi());


}
//näherung für sinus:
public static double SIN() {
double Sin=pi();
double sign = -1;
int b = 0;


for(int i=0,n=2; n+i<1000; i++,n++) {

//System.out.println(Fak(n+1));
Sin=(Sin+(sign*((Math.pow(pi(),(3+b)))/(Fak(n+1)))));
n++;
b=b+2;
sign = -sign;

//System.out.println(Sin);

}

return Sin;

}
//fakultät berechnung:
public static double Fak(int n) {
double fakultaet = 1;
int b = 0;
double c = 0;
for(int i = 2; i<=n; i++) {
b=i%2;
fakultaet = fakultaet*i;
//if(b!=0) {

// c=fakultaet;

//}

}return fakultaet;

}


//näherung für pi:
public static double pi(){

double Ergebnis = 1;
double sign = -1;
double b =3;
double c = 2000000;
for(double i=0; i <c; i++) {
//System.out.println(b);

Ergebnis = Ergebnis + sign*(1/b);
b=b+2;

sign = -sign;

}
double PI;
PI=Ergebnis;
return PI;
}
}

liefert eine passende Näherung. Sieht wahrscheinlich aus wie scheiße das Programm aber naja ;D.
... warum dachte ich eigentlich das hier jemand um 4:30 antwortet >.< ich sollte wirklich mal schlafen gehen.
kann von mir aus geschlossen werden oder so tut mir leid.
 

Ähnliche Java Themen

Neue Themen


Oben