当我在matlab中写这个
syms x;
f=x^3-cos(x);
g=diff(f)
Run Code Online (Sandbox Code Playgroud)
它给出了
g =
3*X ^ 2 +的sin(x)
现在我想生成求和系列

我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
你能指导我如何创建产生输出的系列

这样当我发出命令diff(Sk); 它应该产生结果或类似的东西

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

您的帮助肯定会有很大的帮助.
我在这个问题中使用的方程包含指数.由于这个原因,在区分之后,除了额外的常数和其他因素之外,它们几乎没有变化.我想知道是否有可能将这些指数收回到他们所在表达式的名称中.这是一个例子:
鉴于此功能定义
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包吗?
同情,给出一个矩阵方程
M*x + N*y = 0(或更复杂..)
如何为x解决这个问题?(M,N =矩阵,x,y =向量)
我用普通符号尝试了这个,但显然失败了.使用MatrixSymbol也不行.有没有办法做到这一点,或者是否有能力做到这一点?
我有一个多元多项式(在一般情况下有许多变量),其系数列出了我需要读取的一些数据,但看起来似乎没有一个很好的方法来做到这一点.
该collect功能似乎是正确的想法,但是当你有几个变量使用它,它实际上并没有给你个人单项式,但单项的比较奇怪的分组依赖你列出的变量的顺序.
有谁知道这样做的方法?
我正在评估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
在下面的程序中,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) 我需要解决一组符号布尔表达式,例如:
>>> 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),因此无法使用蛮力策略。我在网上搜索,发现Sympy和Sage具有符号操作功能(特别是this和this可能很有用)。我怎样才能做到这一点?
编辑:我主要试图操纵这些东西:
>>> 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 …
我想这一定有一个简单的答案,但我搜索了很长时间,没有找到。
例子:一个简单的洛朗多项式,所以
>> p = 2*y*x**2+4*y/x
分解给出
>> factor(p)
2*y*(x**3 + 2)/x
我如何提取因子2*y/x?当表达式不是多项式时,是否有一种简单的方法来获得表达式中的公因数?我尝试了很多,但没有发现任何令人满意的东西。分解一定存在于 的步骤中factor(),对吗?
尽管这听起来像是一项简单的任务,但我还没有通过文档遇到过这样做的方法。
运行任意例程后(例如这些示例之一,我得到类似
>>> 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)
我如何(或者我什至可以)将其转换为可以在外部使用gplearn的sympy表达式,例如表达式?