选择一种语言来编写技术工程数学(我可以使用Java吗?)

gee*_*jay 4 java math matlab programming-languages

我必须为工程公司编写原型应用程序.大多数工作都在计算各种工程属性(我在这里谈的是管道和真实的东西,而不是软件工程).

但是,还必须有一个GUI:

  • 参数输入
  • 显示结果
  • 一些基本的图表

  • 目前的计算工作不涉及复杂的数学元素(目前没有矩阵),只是日志,平方根,相对简单的公式.稍后我将不得不做一些:

  • 曲线拟合
  • 数值逼近

  • 我想知道Java是否已被用于真实世界的工程应用程序?

    是否有可用于此类的库?

    或者我最好在MatLab中编写,然后通过Java连接到代码?

    也对其他语言开放(虽然我们是一家Java商店).

    Hig*_*ark 14

    我对Matlab和Java有一些科学/工程类型代码的经验.是的,Java用于实际的科学和工程代码,是的,有可用的库.你当然可以用你想做的任何事情,所以我不确定你是否可以根据你当前的要求明智地区分这两者.我问自己以下问题:

    1. 我在编写高级数学运算方面有多好?函数最小化,微分方程求解器,矩阵代数等操作.如果答案不是很好,那么倾向于Matlab,它将提供所有这些开箱即用的功能(尽管您可能需要额外的工具箱).如果您选择Java,请确保您对浮点运算非常熟悉并处理使用它时出现的各种错误.
    2. 我想用Java编写所有内容,Matlab中的所有内容,还是我很乐意使用它们并在Matlab引擎上与Java GUI进行搏斗?我认为你可以做得更好(在模糊的意义上)使用Java的GUI比使用Matlab更好,但是Matlab的GUI设备对于大多数用户来说已经足够好了,因此将Matlab与Java集成的额外复杂性不值得解决.但是后来很多Matlab用户都不是软件工程师.
    3. 原型工作需要多快的开发速度?如果你在Java和Matlab中同样熟练,那么我猜你可以在Matlab中更快地完成它,因为已经提供了数字内容,你可以专注于GUI.但如果您是熟练的Java程序员,那么您可能会决定坚持使用您所知道的内容.
    4. 如果原型成功,我将如何开发和部署生产应用程序?如果Matlab不适合您的部署想法,那么学习它并忘记它可能不会有所回报.

    最后,因为你征求其他语言建议:忘记Java,忘记Matlab,忘记Python,忘记R,使用Mathematica,它更有趣,更强大.


    Cha*_*art 5

    这听起来像是Matlab的工作:你没有给出任何不使用它的理由.有一些代码用于评估Java中的Matlab表达式:http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.html