【发布时间】:2011-07-17 14:56:05
【问题描述】:
这更像是一个“教育”问题。 :)
虽然,我最终可能想做这样的事情。
所以,假设我有一个方程式。可以是任何方程,只要不是荒谬的,并且是一个擅长数学的人都可以解。
假设... 0 = (x-1)(x+2)
或... y = (x^2), y = 1/x
或者正弦函数等。基本上,就像我们在学校做的那样做数学。
问题是,我将如何编写一个计算机程序来解决这个问题?我知道这是可能的,因为 Mathematica、Maple 等程序已经这样做了几十年!但我找不到任何关于如何制作简单方程求解器的好的文档。
我不希望答案告诉我“这正是你的做法”,因为这样的事情当然是一个完整的大程序,而不仅仅是一个代码 sn-p。
但只是一般概述,或一些好的文档的链接?那太好了!谢谢:)
尤其是所需的数据结构和算法。
如果做不到这一点,我只需要弄清楚我是如何求解方程的,然后对其进行编码。但这确实需要几个月的时间才能做到正确(我以前做过这种事情,将我自己的思维过程形式化为代码,它有效但速度很慢)。
【问题讨论】:
-
这是一个非常棘手的问题……什么是人类“擅长数学”?学校形式和国家之间的“学校数学”差异很大......当然,如果您将自己限制在应该可行的二次方程中。 Mathematica 处理复杂性的部分方式似乎是如何将 everything 转换为列表列表,以至少以连贯的方式表示方程。例如。 0=(x-1)(x+2) 将是 Equals(0,Product(Sum(x,-1),Sum(x,+2))) 或类似...
标签: math equation-solving