📄 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 + -