快速业务通道

Java Math 类中的新功能,第 1 部分: 实数 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
是前 10 行结果:

1  0.0                0.0                  0.0 2  0.3010299956639812 0.6931471805599453  1.0 3  0.47712125471966244 1.0986122886681096 1.584962500721156 4  0.6020599913279624 1.3862943611198906  2.0 5  0.6989700043360189 1.6094379124341003  2.321928094887362 6  0.7781512503836436 1.791759469228055   2.584962500721156 7  0.8450980400142568 1.9459101490553132  2.807354922057604 8  0.9030899869919435 2.0794415416798357  3.0 9  0.9542425094393249 2.1972245773362196  3.1699250014423126 10 1.0                2.302585092994046   3.3219280948873626

Math.log10() 能正常终止对数函数执行:0 或任何负数的对数返回 NaN。

Java Math 类中的新功能,第 1 部分: 实数(5)

时间:2011-04-30 IBM Elliotte Rusty Harol

立方根

我不敢说我的生活中曾经需要过立方根,我也不是每天都要使用代数和几何的少数人士之 一,更别提偶然涉足微积分、微分方程,甚至抽象代数。因此,下面这个函数对我毫无用处 。尽管如此,如果意外需要计算立方根,现在就可以了 — 使用自 Java 5 开始引入的 Math.cbrt() 方法。清单 4 通过计算 -5 到 5 之间的整数的立方根进行了演示:

清单 4. -5 到 5 的立方根

public class CubeRoots {    public static void main(String[] args) {      for (int i = -5; i <= 5; i++) {        System.out.println(Math.cbrt(i));      }    } }

下面是结果:

-1.709975946676697 -1.5874010519681996 -1.4422495703074083 -1.2599210498948732 -1.0 0.0 1.0 1.2599210498948732 1.4422495703074083 1.5874010519681996 1.709975946676697

结果显示,与平方根相比,立方根拥有一个不错的特性:每个实数只有一个实立方根。这 个函数只在其参数为 NaN 时才返回 NaN。

双曲三角函数

双曲三角函数就是对曲线应用三角函数,也就是说,想象将这些点放在笛卡尔平面上来得 到 t 的所有可能值:

x = r cos(t) y = r sin(t)

您会得到以 r 为半径的曲线。相反,假设改用双曲正弦和双曲余弦,如下所示:

x = r cosh(t) y = r sinh(t)

则会得到一个正交双曲线,原点与它最接近的点之间的距离是 r。

还可以这样思考:其中 sin(x) 可以写成 (ei x - e-i x)/2,cos(x) 可以写成 (ei x + e-i x)/2,从这些公式中删除虚数单位后即可得到双曲正弦和双曲余弦,即 sinh(x) = (e x - e -x)/2,cosh(x) = (e x + e -x)/2。

Java Math 类中的新功能,第 1 部分: 实数(6)

时间:2011-04-30 IBM Elliotte Rusty Harol

Java 5 添加了所有这三个函数:Math.cosh()、Math.sinh() 和 Math.tanh()。还没有包 含反双曲三角函数 — 反双曲余弦、反双曲正弦和反双曲正切。

实际上,cosh(z) 的结果相当于一根吊绳两端相连后得到的形状,即悬链线。清单 5 是 一个简单的程序,它使用 Math.cosh 函数绘制一条悬链线:

清单 5. 使用 Math.cosh() 绘制悬链线

import java.awt.*; public class Catenary extends Frame {    private static final int WIDTH = 200;    private static final int HEIGHT = 200;    private static final double MIN_X = -3.0;    private static final double MAX_X = 3.0;    private static final double MAX_Y = 8.0;    private Polygon catenary = new Polygon();    public Catenary(String title) {      super(title);      setSize(WIDTH, HEIGHT);      for (double x = MIN_X; x &

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号