?? sciencearith.java
字號:
/**
* @author lztly 李振滔 Whuhan University Of Science and Technology
* @作者 lztly 李振滔 武漢科技大學 計算機科學與技術2004級
* @description 定義科學計算中用到的一些方法
*/
/**
* 導入Vector類
*/
import java.util.Vector;
public class ScienceArith
{
/**
* 功能:角度制轉換成弧度制
* @param x 傳入角度制參數
* @return
*/
public static double deg_to_rad( double x )
{
return Math.toRadians( x );
}
/**
* 功能:角度制轉換成梯度制
* @param x 傳入角度制參數
* @return
*/
public static double deg_to_grad( double x )
{
return x*10/9;
}
/**
* 功能:弧度制轉換成角度制
* @param x 傳入弧度制參數
* @return
*/
public static double rad_to_deg( double x )
{
return Math.toDegrees( x );
}
/**
* 功能:弧度制轉換成梯度制
* @param x 傳入弧度制參數
* @return
*/
public static double rad_to_grad( double x )
{
return Math.toDegrees( x ) * 10 / 9;
}
/**
* 功能:梯度制轉換成角度制
* @param x 傳入梯度制參數
* @return
*/
public static double grad_to_deg( double x )
{
return x * 9 / 10;
}
/**
* 功能:梯度制轉換成弧度制
* @param x 傳入梯度制參數
* @return
*/
public static double grad_to_rad( double x )
{
return Math.toRadians( x * 9 / 10 );
}
/**
* 功能:求x的雙曲正弦
* @param x
* @return
*/
public static double sinh( double x )
{
return ( Math.pow( Math.E, x ) - Math.pow( Math.E, -x ) ) / 2;
}
/**
* 功能:求x的雙曲余弦
* @param x
* @return
*/
public static double cosh( double x )
{
return ( Math.pow( Math.E, x ) + Math.pow( Math.E, -x ) ) / 2;
}
/**
* 功能:求x的雙曲正切
* @param x
* @return
*/
public static double tanh( double x )
{
return sinh( x ) / cosh( x );
}
/**
* 功能:求x的反雙曲正弦
* @param x
* @return
*/
public static double asinh( double x )
{
return Math.log( x + Math.sqrt( x * x + 1 ) );
}
/**
* 功能:求x的反雙曲余弦
* @param x
* @return
*/
public static double acosh( double x )
{
return Math.log( x + Math.sqrt( x * x - 1 ) );
}
/**
* 功能:求x的反雙曲正切
* @param x
* @return
*/
public static double atanh( double x )
{
return Math.log( ( 1 + x ) / ( 1 - x ) ) / 2;
}
/**
* 功能:求x以10為底的對數
* @param x
* @return
*/
public static double log10( double x )
{
return Math.log( x ) / Math.log( 10 );
}
/**
* 功能:求dms(將顯示數字轉換為“度-分-秒”格式)
* @param n
* @return
*/
public static double dms(double n)
{
boolean neg=(n<0);
n=Math.abs(n);
double d=Math.floor(n);
double m=Math.floor(60*(n-d));
double s=(n-d)*60-m;
double dms=d+m/100+s*0.006;
if (neg)
dms=-dms;
return dms;
}
/**
* 功能:求inv+dms(將顯示的數值轉換為度的顯示格式)
* @param n
* @return
*/
public static double invdms(double n)
{
boolean neg=(n<0);
n=Math.abs(n);
double d=Math.floor(n);
double m=Math.floor((n-d)*100);
double s=(n-d)*100-m;
double deg=d+m/60+s/36;
if (neg)
deg=-deg;
return(deg);
}
/**
* 功能:統計功能之求和sum
* @param v
* @param n
* @return
*/
public static double sum(Vector v, int n)
{
return n > 0 ? Double.parseDouble(v.elementAt(n-1).toString()) + sum(v, n - 1) : 0;
}
/**
* 功能:統計功能之求平方和Inv+sum
* @param v
* @param n
* @return
*/
public static double invsum(Vector v, int n)
{
double sum=0;
for(int i=n;i>0;i--){
sum+=Math.pow( Double.parseDouble(v.elementAt(i-1).toString()),2);
}
return sum;
}
/**
* 功能:統計功能之求平均值Ave
* @param v
* @param n
* @return
*/
public static double ave(Vector v,int n)
{
double ave=0;
ave=ScienceArith.sum(v,n)/n;
return ave;
}
/**
* 功能:統計功能之求均方值Inv+Ave
* @param v
* @param n
* @return
*/
public static double invave(Vector v,int n)
{
double ave=0;
ave=ScienceArith.invsum(v,n)/n;
return ave;
}
/**
* 功能:統計功能之求總體參數為n-1的標準差s
* @param v
* @param n
* @return
*/
public static double stddeviation(Vector v,int n)
{
return Math.sqrt((ScienceArith.invsum(v,n)-n*Math.pow(ScienceArith.ave(v,n),2))/(n-1));
}
/**
* 功能:統計功能之求總體參數為n的標準差Inv+s
* @param a
* @param n
* @return
*/
public static double invstddeviation(Vector a,int n)
{
return Math.sqrt((ScienceArith.invsum(a,n)-n*Math.pow(ScienceArith.ave(a,n),2))/n);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -