We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed last year.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
使用Mathematica 符号计算。
您可以直接在 Mathematica 中输入数学方程,然后将结果导出为 C 代码。
不断调整方程,直到渲染看起来与学术论文中的原始方程相同。然后您可以插入自己的参数,Mathematica 将为您计算结果。
您甚至可以做一些很酷的事情,例如要求它对方程进行微分 - 它会产生微分,并打印出结果方程。
您可以从任何语言调用 Mathematica,包括 .NET、Q、Python、Java 等。
您甚至可以将 Mathematica 程序编译为 .NET 程序集并将其嵌入到您的应用程序中。
Mathematica 还将发出与您刚刚输入的数学公式相匹配的 Java 或 C 代码。
Use Mathematica Symbolic Computation.
You can enter mathematical equations straight into Mathematica, then export the result as C code.
Keep tweaking the equation until the rendering looks identical to the original equation in the academic paper. You can then plug your own parameters in, and Mathematica will calculate the result for you.
You can even do cool things such as ask it to differentiate the equation - and it will produce the differential, and printout the resulting equation.
You can call Mathematica from any language, including .NET, Q, Python, Java, etc.
You could even compile the Mathematica program into a .NET assembly and embed it into your app.
Mathematica will also emit Java or C code that matches the mathematical formula you have just entered.
我从来没有见过这样的事情。大多数数学符号都是为了(至少)具有合理智力的人能够理解而编写的,因此它经常省略生成工作代码所需的各种细节。如果您有这样一个工具,我怀疑它在超过(也许)10% 的情况下会产生可用的结果。
相反的情况似乎更站得住脚——从代码(尤其是像 Matlab 这样的东西)生成可读的数学符号听起来更合理。忽略现有的信息比尝试合成缺失的信息要容易得多。
I've never seen such a thing. Most mathematical notation is written to be understood by a person of (at least) reasonable intelligence, so it frequently omits all sorts of details that would be necessary to produce working code. If you had such a tool, I doubt it would produce usable results more than (maybe) 10% of the time.
The reverse seems a great deal more tenable -- producing readable mathematical notation from code (especially from something like Matlab) sounds much more reasonable. It's much easier to omit information that's present than to try to synthesize information that's missing.
这是不可能的。正如杰里·科芬(Jerry Coffin)所说,一般来说,论文中的数学表达式是为了人类理解而设计的。正因为如此,才会出现各种各样的问题。我第一时间想到的就是最优性。供人类使用的(数学)代码很少是最佳的,不好的例子是斐波那契数列。没有人会编写人类理解的斐波那契代码。
因此,即使您确实解析了代码,您仍然需要做很多工作,这与自己编写代码相同。
It's not possible. Generally, mathematical expressions in papers are made for humans to understand, as Jerry Coffin said. Because of this, there are all sorts of issues. One I think off the top of my head is optimality. (Mathematical) code for human consumption is rarely optimal, bad example is the Fibonacci sequence. Nobody would write Fibonacci code as humans understand it.
So, even if you did get the code parsed, you'll still have so much work to do it's the same as just writing it yourself.
这个问题基于一个核心假设——计算机把一切都做得更好。事实并非如此。
计算机,特别是计算机器往往比人类更好地完成迭代任务,而认知任务则更差。您想要转换的数学是迭代的还是认知的?如果它是迭代的,那么标准过程 - for x do n 次或 while (criterion) do 等等...将很容易用于迭代任务。如果您正在深入研究人工智能和机器学习,那么有大量关于计算机应该如何实现人工智能并做好它的信息。我假设提问者是从认知意义上寻求帮助,而不是迭代。因此,问题就出现了,而且缺乏解决方案。如果任务是通过认知来实现的,那么计算机将无法帮助你。
The question is based on a core assumption - computers do everything better. This is not the case.
Computers and specifically computational machines tend to do iterative tasks better than humans and cognitive tasks worse. Is the maths you're trying to convert iterative or cognitive? If its iterative then the standard procedure - for x do n times or while (criterion) do etc... would be simple to use for iterative tasks. If you're delving into AI and machine learning there is a wealth of information out there as to how computers are supposed to do AI and do it well. I'm assuming that the questioner is asking for help from a cognitive sense and not iterative. Hence the problem - and lack of solution. If the task is cognitive to implement then computational machines will not help you.