⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sciencearith.java

📁 一款模拟windows的计算器
💻 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 + -