Tag: 数学

java随机百分比

我需要生成n个百分比(0到100之间的整数),使得所有n个数字的总和加起来为100。 如果我只执行nextInt() n次,每次确保参数为100减去先前累积的总和,那么我的百分比是有偏差的(即第一个生成的数字通常是最大的等等)。 我如何以无偏见的方式做到这一点?

如何计算两个角度测量值的差异?

如何计算Java中两个角度测量值(以度为单位)的差值,结果是在[0°,180°]范围内? 例如: 350° to 15° = 25° 250° to 190° = 60°

使用Javascript(或任何客户端)绘制方程

有没有我可以用来绘制数学方程的图书馆? (最好使用javascript,也可以使用Java;或者任何客户端)

用数值方法求解非线性方程组

我需要在我的Java程序中解决非线性最小化(N个未知数的最小残差平方)问题。 解决这些问题的常用方法是Levenberg-Marquardt算法。 我有一些问题 有没有人对不同的LM实现有经验? LM的味道略有不同,我听说算法的确切实现对其数值稳定性有重要影响。 我的function非常好,所以这可能不是问题,但当然我想选择一个更好的选择。 以下是我发现的一些替代方案: FPL统计小组的非线性优化Java包 。 这包括经典Fortran MINPACK例程的Java转换。 JLAPACK ,另一个Fortran翻译。 优化算法工具包 。 Javanumerics 。 一些Python实现。 纯Python很好,因为它可以用jythonc编译成Java。 是否有任何常用的启发式方法来进行LM所需的初始猜测? 在我的应用程序中,我需要对解决方案设置一些约束,但幸运的是它们很简单:我只是要求解决方案(为了成为物理解决方案)是非负的。 稍微负面的解决方案是数据中测量不准确的结果,显然应该为零。 我正在考虑使用“常规”LM但迭代,以便如果一些未知数变为负数,我将其设置为零并从中解决其余部分。 真正的数学家可能会嘲笑我,但你认为这可行吗? 感谢您的任何意见! 更新 :这不是火箭科学,要解决的参数数量(N)最多为5,数据集几乎不足以使解决成为可能,所以我相信Java足以解决这个问题。 而且我相信聪明的应用数学家已经多次解决了这个问题,所以我只是在寻找一些现成的解决方案,而不是自己做饭。 例如,如果它是纯Python,Scipy.optimize.minpack.leastsq可能会没问题。

如何确定GPS坐标是否位于矩形区域内?

我在Stackoverflow和其他网站上经历了许多类似的问题,我的解决方案基于这些答案,但我仍然无法让它工作…… 我的问题:我想确定某个GPS位置P位于由四个给定的GPS坐标A , B , C , D界定的矩形区域内。 目前我正在计算三角形ABP , BCP , CDP和DAP的面积。 如果这些区域中的任何一个大于零(不要沮丧,数学家),那么这个点就在我的矩形之外。 码: private static double triangleArea(Location a, Location b, Location c) { // (Cx*By-Bx*Cy)-(Cx*Ay-Ax*Cy)+(Bx*Ay-Ax*By) double result = (c.getLongitude()*b.getLatitude()-b.getLongitude()*c.getLatitude())-(c.getLongitude()*a.getLatitude()-a.getLongitude()*c.getLatitude())+(b.getLongitude()*a.getLatitude()-a.getLongitude()*b.getLatitude()); return result; } public static boolean isInsideSquare(Location a, Location b, Location c, Location d, Location p) { if (triangleArea(a,b,p)>0 || triangleArea(b,c,p)>0 || triangleArea(c,d,p)>0 || […]

javascript有任何统计库吗?

我需要在javascript上实现一些统计测试,如:T-test,Anova和Wilcoxon。 类似于Java的 – Apache Commons Math Library,是否有任何统计测试库或javascript代码?

比例数<= 255?

我有一些单元格,其数值可以是介于0和Integer.MAX_VALUE之间的任何值。 我想相应地对这些单元格进行颜色编码。 如果值= 0,那么r = 0.如果值是Integer.MAX_VALUE ,则r = 255.但是它们之间的值怎么样? 我想我需要一个函数,其限制为x => Integer.MAX_VALUE为255.这个函数是什么? 或者有更好的方法吗? 我可以这样做(value / (Integer.MAX_VALUE / 255))但这将导致许多低值为零。 所以也许我应该用日志function来做。 我的大多数值都在[0,10,000]范围内。 所以我想强调那里的差异。

如何在Java中解决Integral?

我需要用Java开发一个程序来解决一些积分问题。 像这样的积分: 我在java.Math中找了一些函数来做到这一点,但我没找到任何东西。 有没有人有想法为此获得解决方案? (可能是一些额外的库或类似的东西) 非常感谢!!

2配方的力量帮助

据我所知(Java中的2 * i ==(i ^(i – 1)+ 1),我会发现一个数字是2的幂。但有人可以解释为什么这有效吗?

在Java中使用“sincos”

在很多情况下,我不仅需要正弦,还需要相同参数的余弦。 对于C,在常见的unix m数学库中有sincos函数。 实际上,至少在i386上,这应该是单个汇编指令fsincos 。 sincos,sincosf,sincosl – 同时计算sin和cos 我想这些好处是存在的,因为在计算正弦和余弦时存在明显的重叠: sin(x)^2 + cos(x)^2 = 1 。 但是AFAIK尝试将其cos = Math.sqrt(1 – sin*sin)为cos = Math.sqrt(1 – sin*sin)并没有得到回报,因为sqrt函数的成本相似。 有没有办法在Java中获得相同的好处? 我想我要为double[]付出代价; 由于添加了垃圾收集,这可能使所有的努力都没有实际意义。 或者Hotspot编译器是否足够智能以识别我需要两者,并将其编译为sincos命令? 我可以测试它是否识别它,我可以帮助它识别这一点,例如确保Math.sin和Math.cos命令在我的代码中直接连续吗? 从Java语言的角度来看,这实际上是最有意义的:让编译器优化它以使用fsincos汇编调用。 从一些汇编文档中收集: Variations 8087 287 387 486 Pentium fsin – – 122-771 257-354 16-126 NP fsincos – – 194-809 292-365 17-137 NP Additional cycles required if […]