Compare commits
No commits in common. 'master' and 'sin' have entirely different histories.
@ -0,0 +1,91 @@
|
||||
package sin;
|
||||
|
||||
public class Sin {
|
||||
|
||||
public static double number;
|
||||
public static double PI = 3.14159265358979323846;
|
||||
|
||||
|
||||
public Sin() {
|
||||
|
||||
}
|
||||
|
||||
public static double sin(double num) {
|
||||
|
||||
double tmp = Math.toRadians(num);
|
||||
number=Math.sin(tmp);
|
||||
|
||||
return number;
|
||||
|
||||
}
|
||||
|
||||
public static double cos(double num) {
|
||||
|
||||
double tmp = Math.toRadians(num);
|
||||
|
||||
return Math.cos(tmp);
|
||||
|
||||
}
|
||||
|
||||
public static double mysin(double x)
|
||||
{
|
||||
while(x>2*PI) x -= 2*PI;
|
||||
while(x<0) x += 2*PI;
|
||||
|
||||
double index, result=0;
|
||||
int i=1;
|
||||
do{
|
||||
index = mypow(x,i) / factorial(i);
|
||||
result += mypow(-1,i/2) * index;
|
||||
i += 2;
|
||||
}
|
||||
while(index>1e-6);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static double factorial(double i) {
|
||||
|
||||
if(i==0)
|
||||
return 1;
|
||||
else
|
||||
return i*factorial(i-1);
|
||||
}
|
||||
|
||||
public static double mypow(double x,int i) {
|
||||
|
||||
if(i>0)
|
||||
return x*mypow(x, i-1);
|
||||
else if(i<0)
|
||||
return 1/x*mypow(x, i+1);
|
||||
else
|
||||
return 1;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static double mycos(double x) {
|
||||
while(x>2*PI) x -= 2*PI;
|
||||
while(x<0) x += 2*PI;
|
||||
|
||||
double index, result=0;
|
||||
int i=0;
|
||||
|
||||
do{
|
||||
index = mypow(x,i) / factorial(i);
|
||||
result += mypow(-1,i/2) * index;
|
||||
i += 2;
|
||||
}
|
||||
while(index>1e-6);
|
||||
|
||||
return result;
|
||||
}
|
||||
public static double toRadians(double angdeg) {
|
||||
return angdeg / 180.0 * PI;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
|
||||
System.out.println(mysin(toRadians(30)));
|
||||
System.out.println(mycos(30));
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
public class mypow{
|
||||
double e,x;
|
||||
public double mypow(double e,double x) {
|
||||
double ans=Math.pow(e, x);
|
||||
return ans;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue