问题标签 [computer-algebra-systems]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

differential-equations - Maxima 没有使用 desolve 找到 diff eq 的解决方案

在我使用 wxmaxima 11.08.0(ubuntu 12.04,Maxima 版本:5.24.0)进行练习期间,
我遵循了P.Lutus 的示例,而他的第二个示例对我不起作用。

然后 Maxima 不再有反应,直到我重新启动它。
我需要先激活或定义最大值以获得结果吗?

预期的输出应该是:
中间结果

如果我手动定义方程,我的问题还有第二部分:

连续过程的初始条件:

上个学期还在

这里最后一个任期仍然存在。这些问题是基于三角函数的使用吗?

最好的问候,马库斯


我通过 PPA 更新到 wxMaxima 13.04.0 和 Maxima 5.29.1。现在desolve完成了,但是最后一个词似乎很复杂。 最大值 5.29.1 解决结果

使用负数最后一项和 desolve 命令执行 init_val 仍然会在等式中留下 %e^(..)*... 。

0 投票
1 回答
3151 浏览

maxima - 使用 wxMaxima 分解多项式

假设我定义了一些函数,然后更改变量并展开,如下行所示:

我现在想做的是在k中获得多项式,即用一个命令收集 k 的每个幂中的项,以便它显示如下内容:

0 投票
2 回答
348 浏览

python - 递归操作树结构:如何获得“整个”树的状态?

首先,上下文:

作为一个附带项目,我正在用 Python 构建一个计算机代数系统,该系统产生求解方程所需的步骤。

到目前为止,我已经能够将代数表达式和方程解析为表达式树。它的结构是这样的(不是实际的代码——可能没有运行):

除此之外,我还有一系列递归操作以简化表达式的函数。它们不是纯粹的功能,但我试图避免依赖于操作的可变性,而是返回我正在使用的节点的修改副本。每个函数看起来像这样:

挑战来自“逐步”部分。我希望我的“简化”函数都是嵌套生成器,它们“产生”解决问题所需的步骤。所以基本上,每次每个函数执行一个操作时,我都希望能够做这样的事情:yield (deepcopy(node), expression, "Combined like terms.")这样依赖这个库的任何东西都可以输出如下内容:

然而,每个功能只知道node它正在运行的信息,但不知道整体是什么expression样子。

所以这是我的问题:保持整个表达式树的“状态”以使每个“步骤”都了解整个表达式的最佳方法是什么?

以下是我提出的解决方案:

  • 在适当的位置执行每个操作,并使用全局变量或类中的实例变量来存储指向等式的指针。我不喜欢这样,因为单元测试更难,因为现在我必须先设置类。您还失去了功能更强大的方法的其他优势。
  • 将表达式的根传递给每个函数。但是,这要么意味着我必须重复每个操作来更新表达式,要么我必须依赖可变性。
  • 让顶层函数根据我产生的每一步“重建”表达式树。例如,如果我 yield 5x + 4x = 9x,让顶级函数找到 (5x + 4x) 节点并将其替换为“9x”。这似乎是最好的解决方案,但如何最好地“重建”每一步呢?

最后两个相关的问题:这是否有意义?我现在有很多咖啡因在我的系统中,不知道我是否清楚。

我是否过于担心可变性?这是过早优化的情况吗?

0 投票
1 回答
257 浏览

algorithm - 符号代数表达式的符号

是否有任何算法可以找到“树 - 形式”中给出的任意符号代数表达式的符号?

我知道不存在通用算法,因为零识别问题对于任意表达式是不可判定的,但是我应该如何解决查找表达式符号的问题?(这是如何在计算机代数中完成的?)

例如:sign(sqrt(2)-1) = ?

0 投票
1 回答
161 浏览

computer-architecture - 我需要多少位来存储 AB+C?

我想知道这个-

如果 A、B 是 16 位数字,C 是 8 位数字,我需要多少位来存储结果?32 还是 33?

而且,如果 C 是一个 16 位数字呢?然后怎样呢 ?

如果我能得到解释如何和为什么的答案,我将不胜感激。

0 投票
1 回答
7585 浏览

max - 如何在 Sympy 中找到函数的最大值?

这些天我正在尝试使用 Sympy 重做单自由度系统的冲击谱。问题可以归约以找到函数的最大值。以下是我不知道该怎么做的两种情况。

第一个是

f最终目标是获得(变量为t)的最大绝对值。直接的方法是

这是结果,我尝试了很多方法,但我无法进一步简化。

结果

因此,我尝试了另一种方法。因为我需要最大绝对值和最大的位置abs(f)发生在平方的同一位置f,所以我们可以先计算平方f

似乎答案几乎相同,只是形式不同。

结果

预期的答案是一个sinc函数加上一个常量,如下所示:

预期的

因此,问题是如何获得最终呈现。

第二个可能有点难。问题可以归结为找到 的最大值f=sin(pi*t/t_r)-T/2/t_r*sin(2*pi/T*t),其中t_rT是两个参数。t_r当和的比值发生变化时,最大值位于不同的峰值T。而且我找不到在 Sympy 中解决它的方法。有什么建议吗?答案可以用下图表示。

最大限度

0 投票
2 回答
68 浏览

boolean - 总和乘积的乘积

(A+B+C+D')(B+C'+D)(A+C)(A+C)

这是我必须转换为产品总和的表达式。

我得到 (A'B'C'D)+(B'CD')+(A'C')+(A'C')

我不确定我是否正确......如果我是,我可以结合(A'C')并写成2(A'C')吗?

请帮忙

0 投票
2 回答
1290 浏览

lisp - 在 maxima 中使用 lisp 代码

我想(make-array '(4 3 8))在 maxima 中使用,它基本上是为了生成多维矩阵,因为我无法找到 API 来创建包括 with 在内的多维矩阵array(name,d1,d2...dm)

我可以使用它来执行它,:lisp (make-array '(4 3 8))但我不知道如何将它标记为类似,

arr: :lisp(make-array '(4 3 8))

我还想知道是否可以在 maxima 函数中使用 lisp 代码。任何形式的帮助都应受到高度重视。

0 投票
1 回答
273 浏览

lisp - Maxima:从函数返回函数并在之后对其进行评估

Maxima我想在. _ Mathematica因此,我尝试放置一个包装器,make-arraymake_array(fixnum,2,3,4)将最后一个参数作为参数序列而不是列表,而如果ConstantArray(a,b,c,d..)使用可变数量的参数进行调用,则我无法将其传递给 make-array 而不将其全部作为列表。

为了解决从作为参数传递的列表中提取元素并放入 make-array 函数的问题,我尝试了,

哪个在调用

返回

make_array(fixnum,1,2,3,5,3)

如果我复制此输出,将其粘贴到控制台并在返回给我的Lisp array [1,2,3,5,3].

我曾尝试使用''%&ev(constantarray(1,2,3,5,3),nouns)等对其进行评估,但它只是不起作用。我想知道是否有人知道如何强制进行此评估,或者我正在做一些不可能的事情。

0 投票
1 回答
1001 浏览

algorithm - 是否存在执行分层权限检查的算法?

我有一个代表层次结构的数据结构。

  • 文件夹
    • 文件夹
      • 文件夹
      • 文件
    • 文件
    • 等等

权限存储在一个平面表中:

在执行搜索等全局操作时,我们需要在树中递归地检查权限。

检查与树结构的各个叶子内联的权限很容易。然而,考虑节点上的权限需要两种已知方法之一:

  • 获取过滤后的叶子后,对每个叶子进行后期处理以检查它的父母烫发
    • 成本延迟到之后
    • 可能找到很多初始叶子,但是在处理父母之后,什么都没有留下,导致做无用的工作
  • 提前计算所有根(授予权限的节点),并在获取叶子时将其用作查询过滤器

    • 如果存在许多根导致处理每个叶子花费过多时间,则可能是一个巨大的查询

    是否存在任何算法可以更有效地执行此操作?也许重新组织权限数据或向层次结构添加更多信息?

    也许添加一些启发式方法来处理极端情况?