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

8ehkhllq  于 2023-01-07  发布在  Java
关注(0)|答案(9)|浏览(144)

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
六年前关闭了。
Improve this question
我必须为一家工程公司编写一个原型应用程序,大部分工作是计算各种工程属性(我这里说的是管道和实物,不是软件工程)。
但是,还必须有一个GUI用于:

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

目前的计算工作不涉及复杂的数学元素(目前没有矩阵),只是对数、平方根等比较简单的公式,以后还要做一些:

  • 曲线拟合
  • 数值近似

我想知道Java是否已经用于现实世界的工程应用程序?
有图书馆可以处理这类事情吗?
或者我最好在MatLab中编写代码,然后通过Java连接到代码?
也对其他语言开放(尽管我们是Java商店)。

h9vpoimq

h9vpoimq1#

这主要取决于在您的环境中将mathlab或其他数学引擎包含在您的产品中的容易程度。如果这很容易,我建议使用mathlab,但如果不容易,例如您有许可问题或部署问题,您可能更好地只使用普通Java代码。

kx5bkwkv

kx5bkwkv2#

您可能还需要考虑R language

8hhllhi2

8hhllhi23#

我会搜索一个专门用于管道计算的软件。这个问题已经解决了。(正如你所注意到的,计算并不困难。)至少我会建议你知道你可以使用什么,它的成本是多少,以及开发成本的盈亏平衡点在哪里。
一个商业产品比你写的任何东西都有一个巨大的优势:它会有一个更大的用户社区,他们会在比你的原型更长的时间里一直在敲打它,发现bug,这也是有价值的。
你的机会成本是多少?你还能利用开发时间做些什么来增加收入?

gzjq41n4

gzjq41n44#

别忘了numpy和scipy,它们都允许你从Python调用快速矩阵库。

0ve6wy6x

0ve6wy6x5#

我有一些使用Matlab和Java编写科学/工程类代码的经验。是的,Java用于真实世界的科学和工程代码,是的,有一些库可用。你当然可以用它们来做你想做的事情,所以我不确定你是否可以仅仅根据你当前的需求来区分这两者。我会问自己以下问题:
1.我在编程高级数学运算方面有多好?比如函数最小化、微分方程求解器、矩阵代数。如果答案是“不是很好”,那就求助于Matlab,它会提供所有这些开箱即用的运算(尽管您可能需要额外的工具箱)。如果您选择Java,请确保您非常熟悉浮点运算,并处理在使用它时发生的各种错误。
1.我是想用Java编写所有的代码,还是用Matlab编写所有的代码,或者我很乐意同时使用这两种语言,并在Matlab引擎上与JavaGUI搏斗?我认为您可以做得更好(在模糊的意义上)使用Java的GUI比使用Matlab的GUI多,但是Matlab的GUI工具对于大多数用户来说已经足够好了,因此不值得处理将Matlab与Java集成所增加的复杂性。但许多Matlab用户并不是软件工程师。
1.我需要什么样的开发速度来完成原型工作呢?如果你在Java和Matlab方面同样熟练,那么我想你在Matlab中可以做得更快,因为已经提供了数值方面的东西,你可以专注于GUI。但是如果你是一个熟练的Java程序员,刚刚开始使用Matlab,你可能会决定坚持你所知道的。
1.如果原型成功,我将如何开发和部署生产应用程序?如果Matlab不适合您的部署想法,那么学习它并忘记它可能没有什么好处。
最后,由于您寻求其他语言建议:忘记Java,忘记Matlab,忘记Python,忘记R,使用Mathematica,它更有趣,也更强大。

ulmd4ohb

ulmd4ohb6#

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

4si2a6ki

4si2a6ki7#

我曾经做过一些工作,我不得不在Java中重新实现Matlab代码,所以这当然是可能的。由于Matlab能够直接操作矩阵/数组等,因此Java代码与Matlab原始代码相比可能会非常冗长。
您可能需要查看一些数学库,看看它们是否支持您正在寻找的功能:

8oomwypt

8oomwypt8#

我想Java将是一个不错的选择,尽管它不被认为是用于快速应用程序开发的典型语言。
优点:

  • 标准库(Swing)中用于桌面应用程序的通用GUI工具包,
  • (相对)跨平台,
  • 强大的库,例如Apache;一个很棒的数学库应该是colt对于图表和示意图,您可能喜欢jfreechart

缺点:

  • "不那么快"的原型制作能力

进一步阅读:

yshpjwxd

yshpjwxd9#

Python有几个不错的GUI工具包以及NumPy,编写起来既简单又有趣。

相关问题