问题标签 [symbolic-computation]
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.
math - CAS - 二叉树替代方案
有没有一种合理的方法可以在不使用二叉树的情况下制作整个计算机代数系统(代数方程、极限、导数、积分)?
c++ - 如何在 SymbolicC++ 中评估符号变量?
我一直在尝试一些用于 C++ 的计算机代数库,以便与我正在学习的向量微积分课程一起使用。我在 GiNaC 和SymbolicC++中遇到非线性方程时遇到了问题,它确实有效。
这是一个简单的例子,但问题是我不知道如何评估一个数字,也许将它转换为一个双精度或浮点数:
使用该输出,我可以将其复制并传递到ginsh
它,它的评估结果很好,但它在 SymbolicC++ 中保持扩展形式。
我得到的确切输出如下:
如何评估这样的表达式并将它们转换为double
s?
matlab - 求解符号函数
我正在使用 syms 变量,因此我可以将函数或多项式存储在脚本文件中以供以后计算。
问题是当我使用 subs 将 syms 变量的值放入函数或多项式时,它并不能完全解决函数。就像
但
我想要ans喜欢
我应该用什么??请帮我。
algorithm - 检测和删除最少数量的不一致事实的算法(可能在 PROLOG 中)?
您如何编写以下算法?
想象一下这样的“事实”列表,其中字母代表绑定到数值的变量:
这些“事实”显然不一定都是“真实的”:b=z 而 b=2 和 z=3 是不可能的。如果 b=z 或 b=2 被删除,所有事实都将是一致的。如果 z=3 并且 b=z 或 c=z 被删除,那么所有事实都将是一致的,但会比上面少一个事实。该集合包含许多这样的一致子集。例如,a=1、b=2、c=3 是一致的子集,许多其他子集也是如此。
在此示例中,两个一致子集大于任何其他一致子集:
和
使用适当的编程语言(我在想 PROLOG,但也许我错了)你将如何处理包含一致和不一致事实的大集合,然后输出最大可能的一致事实子集(或多个子集,如上面的例子)?
matlab - Matlab nchoosek 使用 int64 和 sym 得到不同的答案
这是一个关于nchoosek
Matlab中函数的问题。
我要找nchoosek(54,25)
,和54C25一样。由于答案大约是 10^15,所以我最初使用int64
. 然而,就象征性而言,答案是错误的。
输入:
输出:
你可以看到它们相差一个。这不是一个真正紧迫的问题,因为我现在使用sym
. 但是有人可以告诉我为什么会这样吗?
编辑:
我正在使用 R2013a。
我看了一下nchoosek.m
,发现如果输入在int64
,代码可以简化成
但是,结果与我int64(prod(nums./dens))
不同prod(sym(nums)./sym(dens))
。这对每个人都一样吗?
matlab - 是否有将 m-file-function 转换为 C(或 MEX) S-function 的程序?
我有一个用 MATLAB 代码编写的简单函数。例如:
matlabFunction
此函数使用符号表达式从命令应用程序派生。我想将其转换为 S-Function 以提高性能,例如转换为 C S-Function、MEX S-Function 等,而不是在 MATLAB S-Function 块或解释型 MATLAB 块中使用它。谢谢
matlab - 声明使用 symvar (MATLAB) 返回的变量
我试图从输入中声明一个函数(n 维)及其变量,无论我在这个函数中有多少变量。例子:
我symvar
用来获取这些变量,它工作得很好:
不幸的是,我不能使用这个输出直接声明这些变量。你能帮我解决这个问题吗?
顺便说一句,我正在使用 MATLAB R2013a
matlab - Matlab数值错误以及如何得到正确答案
我以某种方式在 Matlab 中获得了以下表达式(R2014a on W7, 64b)
其中 k 最初是一个符号变量。然后我设置 k=10 并使用 LONGG 输出格式得到结果 370371188237528。但是,如果我对 Mathematica 使用相同的表达式(用 19 代替 prod(1:19)!),我会得到 370371188237525,我相信这是正确的答案。这似乎是本网站多次描述的舍入错误(是否正确?)。无论有或没有 Matlab 符号工具箱,我如何避免它?
matlab - Matlab 中的 symsum 是否比它应该做的更多?
我有以下循环
在R2014a、W7、64b上计算大约需要600s。Mathematica 中的等效计算需要 60 秒。结果是相同的,但有区别。所有和的属性之一(在这种情况下全部为一百个)是它可以以一种半好的方式分解。Mathematica 默认不分解它,因为它没有被告知这样做。但是 symsum 通过检查总和来做到这一点,我认为这是放缓的根源。
你会同意吗?如果是,有没有办法告诉 symsum 不要简化输出?如果没有,有没有办法加快速度?我真的很想在 Matlab 中做而不是在 Mathematica 中。
matlab - 在 Matlab 中不使用符号工具箱求解方程
我需要为变量 \theta 求解这个方程:
在不使用符号工具箱的情况下使用 Matlab。原因是我正在将 m 文件编译为 .Net 程序集,而符号工具箱无法使用。
我知道如何使用 来解决它vpasolve
,但据我所知,它需要使用syms
.
如果您能建议我在没有符号工具箱的情况下在 Matlab 中求解此方程的方法,我将不胜感激。