当试图计算这个序列时,我得到一个错误
syms n
limit(((-3)^n)/factorial(n),inf)
Run Code Online (Sandbox Code Playgroud)
使用阶乘的错误(第17行)N必须是非负整数的矩阵.错误(第9行)
你如何解决这个问题或者指定他们想要的矩阵?
我正在处理一些较长的方程式,但并不是很复杂,我想使用sympy来简化和“分解”它们。但是我遇到了一些问题。以下是一些最小示例的列表:
问题1:对称
from sympy import *
from __future__ import division
a = symbols('a')
b = symbols('b')
expr = 1/12*b + 1
expr.subs(1/12*b, a)
expr.subs(b*1/12, a)
Run Code Online (Sandbox Code Playgroud)
第一行给出了预期的结果(即a+1),而第二行则没有替代。
问题2:因式表达式
表达式的某些部分被分解了,当我扩展表达式时,它们被简化了,因此无法进行替换。例如
(((x+1)**2-x).expand()).subs(x**2+2*x, y+1)
Run Code Online (Sandbox Code Playgroud)
会给x^2+x+1,我正在寻找的是y+2-x。
题
有办法解决这些问题吗?还是我应该使用其他符号数学工具?任何建议都欢迎。
我在MATLAB中对符号多项式进行了部分分数分解,它给出了一个符号表达式,如下所示:
poly = -2i/(x - 1.0 - 1.7i) + 0.57i/(x - 1.0 + 1.1559i)
Run Code Online (Sandbox Code Playgroud)
如您所见,此符号表达式包含x变量和常量复数.如何从MATLAB中提取此表达式中的所有数值?不得丢失数字是真实的还是复杂的信息.
因此,对于给定的表达式poly,我将如何获得以下矩阵A:
A = [-2i, -1-1.7i; .57i, -1+1.1559i]
A =
0 - 2i -1 - 1.7i
0 + 0.57i -1 + 1.1559i
Run Code Online (Sandbox Code Playgroud)
还请注意,A应包含数字,而不是符号表达式poly.
我读了coeffs-function,但它要求输入是多项式.使用children-function我可以将符号表达式中的求和项除以符号表达式的向量,如下所示:
p = - 0.57735026918962576450914878050196i/(x - 1.0 - 1.7320508075688772935274463415059i) + 0.57735026918962576450914878050196i/(x - 1.0 + 1.7320508075688772935274463415059i);
terms = children(p)
terms =
[ -0.57735026918962576450914878050196i/(x - 1.0 - 1.7320508075688772935274463415059i), 0.57735026918962576450914878050196i/(x - 1.0 + 1.7320508075688772935274463415059i)]
Run Code Online (Sandbox Code Playgroud) 我写了一个涉及cumsum符号向量的小八度脚本,我希望它可以工作,但不幸的是,它没有。这是代码:
pkg load symbolic
n = 3;
syms q x
q = sym('q', [n 1]);
x = sym('x', [n 1]);
cumsum(q - x)
Run Code Online (Sandbox Code Playgroud)
我得到的不是预期的结果:
错误:cumsum:错误的类型参数“类”
为什么会发生这种情况?它可以与 Matlab Symbolic Toolbox 一起使用吗?(不幸的是,我没有它,所以我无法测试。)
我正在寻找一种以该语言编写的程序语言.这是一种语言,其程序是该语言的主要(可能是唯一的)对象.
像自编程转换语言这样的东西,仅仅考虑到这种观点.
动机如下:
有一个程序P1意味着计算Real - > Real我希望有一个程序P2,它将采用P1并将其转换为P1的符号衍生物(或反衍生物).显然,P2可能无法对大多数输入做正确的工作.
有人可能将其视为与lambdas匹配的模式.但是一个非常方便的模式匹配.
reflection programming-languages symbolic-math computer-algebra-systems
考虑以下矩阵
Ja(t1, t2, t3, t4, t5, t6) =
[ (sin(t5)*(cos(t3)*cos(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)) - sin(t3)*sin(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1))))/5 - sin(t1)/100 - (219*sin(t1)*sin(t2))/1000 - (19*cos(t3)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/100 - (21*cos(t3)*cos(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/1000 + (21*sin(t3)*sin(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/1000, (219*cos(t1)*cos(t2))/1000 + (sin(t5)*(cos(t3)*cos(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)) - sin(t3)*sin(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1))))/5 - (19*cos(t3)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/100 - (21*cos(t3)*cos(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/1000 + (21*sin(t3)*sin(t4)*(cos(t1)*sin(t2) + cos(t2)*sin(t1)))/1000, (sin(t5)*(cos(t3)*sin(t4)*(cos(t1)*cos(t2) - sin(t1)*sin(t2)) + cos(t4)*sin(t3)*(cos(t1)*cos(t2) - sin(t1)*sin(t2))))/5 - (19*sin(t3)*(cos(t1)*cos(t2) - sin(t1)*sin(t2)))/100 - (21*cos(t3)*sin(t4)*(cos(t1)*cos(t2) - sin(t1)*sin(t2)))/1000 - (21*cos(t4)*sin(t3)*(cos(t1)*cos(t2) - sin(t1)*sin(t2)))/1000, (sin(t5)*(cos(t3)*sin(t4)*(cos(t1)*cos(t2) - sin(t1)*sin(t2)) + cos(t4)*sin(t3)*(cos(t1)*cos(t2) - sin(t1)*sin(t2))))/5 - …Run Code Online (Sandbox Code Playgroud) matlab ×3
math ×2
cumsum ×1
factorial ×1
matrix ×1
octave ×1
polynomials ×1
python ×1
reflection ×1
substitution ×1
sympy ×1