标签: symbolic-math

符号计算和函数式编程是否相关?

我在想,如果符号计算计算机代数系统(如在Matlab,数学符号工具箱)和函数式编程相关的,怎么样?前者属于后者吗?

感谢致敬!

functional-programming symbolic-math computer-algebra-systems

6
推荐指数
1
解决办法
911
查看次数

使用matlab求和系列

当我在matlab中写这个

syms x;
f=x^3-cos(x);
g=diff(f)
Run Code Online (Sandbox Code Playgroud)

它给出了

g =

3*X ^ 2 +的sin(x)

现在我想生成求和系列
http://upload.wikimedia.org/math/e/1/c/e1c5e8954e1e68099d77ac15ffa765a7.png

我google并找到"symsum"命令,但是当我编写以下命令时,它不执行我所需的任务

syms k
symsum(k^2, 0, 10)
symsum(1/k^2,1,Inf)
Run Code Online (Sandbox Code Playgroud)

它给出了输出

ans = 385

ans = pi ^ 2/6

你能指导我如何创建产生输出的系列
http://upload.wikimedia.org/math/e/1/c/e1c5e8954e1e68099d77ac15ffa765a7.png

这样当我发出命令diff(Sk); 它应该产生结果或类似的东西 在此输入图像描述

例如在Mathematica中,我可以这样做

SummationSeries带有下标

您的帮助肯定会有很大的帮助.

matlab symbolic-math series

6
推荐指数
1
解决办法
4万
查看次数

区分后整理表达

我在这个问题中使用的方程包含指数.由于这个原因,在区分之后,除了额外的常数和其他因素之外,它们几乎没有变化.我想知道是否有可能将这些指数收回到他们所在表达式的名称中.这是一个例子:

鉴于此功能定义

f:= x -> A*exp(B/x)
Run Code Online (Sandbox Code Playgroud)

区别后,人们会得到

A*exp(B/x)*(-B/x^2)
Run Code Online (Sandbox Code Playgroud)

如果我能以某种方式将它转换为它将会很棒

f(x)*(-B/x^2)
Run Code Online (Sandbox Code Playgroud)

这可能是MuPad或任何其他CAS包吗?

matlab symbolic-math computer-algebra-systems mupad

6
推荐指数
1
解决办法
265
查看次数

如何用sympy求解矩阵方程?

同情,给出一个矩阵方程

M*x + N*y = 0(或更复杂..)

如何为x解决这个问题?(M,N =矩阵,x,y =向量)

我用普通符号尝试了这个,但显然失败了.使用MatrixSymbol也不行.有没有办法做到这一点,或者是否有能力做到这一点?

python symbolic-math sympy

6
推荐指数
1
解决办法
3275
查看次数

在同情中隔离多元多项式的一个系数的最佳方法

我有一个多元多项式(在一般情况下有许多变量),其系数列出了我需要读取的一些数据,但看起来似乎没有一个很好的方法来做到这一点.

collect功能似乎是正确的想法,但是当你有几个变量使用它,它实际上并没有给你个人单项式,但单项的比较奇怪的分组依赖你列出的变量的顺序.

有谁知道这样做的方法?

python symbolic-math sympy

6
推荐指数
2
解决办法
973
查看次数

在解析的等式中从复数中获取REAL和IMAG

我正在评估Math.NET Symbolics,以便在我们的应用程序中使用,我们需要一个简单的数学解析器,供用户根据我们的测量数据计算自定义方程.我们的数据采用复数形式.

要测试我在LINQPad中使用以下代码片段:

var complexA = new Complex(1, 1);
var complexB = new Complex(1, 2);
var symbols = new Dictionary<string, FloatingPoint>()
    {
        { "a", complexA },
        { "b", complexB }
    };

Evaluate.Evaluate(symbols, Infix.ParseOrUndefined("1/(a*b)+cos(b)")).ComplexValue.Dump();
Run Code Online (Sandbox Code Playgroud)

这很好用,但是我找不到以下运算符:
我们如何获得符号的REAL或IMAGINARY部分?

我试过real(b)imag(b),但没有奏效.

作为一种解决方法,我也可以做以下事情,但我更喜欢像我这样的运营商abs(b):

var complexA = new Complex(1, 1);
var complexB = new Complex(1, 2);
var symbols = new Dictionary<string, FloatingPoint>()
    {
        { "a", complexA },
        { "b", complexB },
        { "b_REAL", complexB.Real },
        { "b_IMAG", …
Run Code Online (Sandbox Code Playgroud)

c# symbolic-math mathnet-numerics mathdotnet-symbolics math.net

6
推荐指数
0
解决办法
91
查看次数

SymPy可以识别产品的衍生物吗?

在下面的程序中,SymPy似乎并不理解被积函数是产品的衍生物.有没有办法让它回归u*v

import sympy
x = sympy.symbols('x', real=True)
u = sympy.Function('u')
v = sympy.Function('v')
print((u(x) * v(x)).diff(x).integrate(x))
Run Code Online (Sandbox Code Playgroud)

打印:

> Integral(u(x)*Derivative(v(x), x) + v(x)*Derivative(u(x), x), x)
Run Code Online (Sandbox Code Playgroud)

symbolic-math sympy calculus derivative

6
推荐指数
1
解决办法
140
查看次数

在 Python 中解决符号布尔变量

我需要解决一组符号布尔表达式,例如:

>>> solve(x | y = False)
(False, False)

>>> solve(x & y = True)
(True, True)

>>> solve (x & y & z = True)
(True, True, True)

>>> solve(x ^ y = False)
((False, False), (True, True))
Run Code Online (Sandbox Code Playgroud)

此类变量的数量很大(~200),因此无法使用蛮力策略。我在网上搜索,发现SympySage具有符号操作功能(特别是thisthis可能很有用)。我怎样才能做到这一点?

编辑:我主要试图操纵这些东西:

>>> from sympy import *

>>> x=Symbol('x', bool=True)

>>> y=Symbol('y', bool=True)

>>> solve(x & y, x)
Run Code Online (Sandbox Code Playgroud)

这导致NotImplementedError. 然后我尝试 solve(x * y, x)which give [0](我不知道这是什么意思),solve(x * y …

python boolean symbolic-math sympy sage

5
推荐指数
1
解决办法
2157
查看次数

sympy laurent多项式因子

我想这一定有一个简单的答案,但我搜索了很长时间,没有找到。

例子:一个简单的洛朗多项式,所以

>> p = 2*y*x**2+4*y/x

分解给出

>> factor(p) 2*y*(x**3 + 2)/x 我如何提取因子2*y/x?当表达式不是多项式时,是否有一种简单的方法来获得表达式中的公因数?我尝试了很多,但没有发现任何令人满意的东西。分解一定存在于 的步骤中factor(),对吗?

symbolic-math sympy

5
推荐指数
1
解决办法
205
查看次数

如何将 gplearn 的输出导出为 sympy 表达式或其他一些可读格式?

尽管这听起来像是一项简单的任务,但我还没有通过文档遇到过这样做的方法。

运行任意例程后(例如这些示例之一,我得到类似

>>> print(est_gp)
sqrt(div(add(1.000, sub(div(sqrt(log(0.978)), X0), mul(-0.993, X0))),add(-0.583, 0.592)))
Run Code Online (Sandbox Code Playgroud)

我如何(或者我什至可以)将其转换为可以在外部使用gplearnsympy表达式,例如表达式?

python machine-learning symbolic-math sympy gplearn

5
推荐指数
2
解决办法
703
查看次数