有没有将MATLAB的符号表达式转换为可以按元素方式计算的表达式的函数或技术?
例如,命令
a = solve('x^2 + a*x + b == 0')
Run Code Online (Sandbox Code Playgroud)
给出输出
a =
(a^2 - 4*b)^(1/2)/2 - a/2
- a/2 - (a^2 - 4*b)^(1/2)/2
Run Code Online (Sandbox Code Playgroud)
然而,允许a和b成为数组的所需输出是
a =
(a.^2 - 4*b).^(1/2)/2 - a/2
- a/2 - (a.^2 - 4*b).^(1/2)/2
Run Code Online (Sandbox Code Playgroud) 这篇文章在Solve中更新我的问题找到错误的解决方案?
鉴于x中的"简单"功能:
f = (x + 3/10)^(1/2) - (9*(x + 3/10)^5)/5 - (x + 3/10)^6 + (x - 1)/(2*(x + 3/10)^(1/2));
Run Code Online (Sandbox Code Playgroud)
通过电话找到零
solve(f,x)
Run Code Online (Sandbox Code Playgroud)
这产生3个零:
ans =
0.42846617518653978966562924618638
0.15249587894102346284238111155954
0.12068186494007759990714181154349
Run Code Online (Sandbox Code Playgroud)
简单地看一下图表显示第三个根是无意义的:

我有一个严重的问题,因为我需要从上面的向量中检索最小的零.调用min(ans)返回错误的零.我该怎么做才能解决?
我想在这里解决我的另一个问题,所以只要没有积分的解析/符号解决方案,我就需要 sympy 返回错误。
例如,如果我尝试:
from sympy import *
init_printing(use_unicode=False, wrap_line=False, no_global=True)
x = Symbol('x')
integrate(1/cos(x**2), x)
Run Code Online (Sandbox Code Playgroud)
它只是 [漂亮] 打印积分本身
没有解决和/或给出无法解决的错误!
PS 我也在Reddit 上问过这个问题。
我有一个总和,其中每个项共享相同的分母,例如a/Z + b/Z + ...。我想把Z. 虽然simplify可以做到,但是时间太长了。我已经尝试collect过了factor,但也没有达到我想要的效果。
有 SymPy 函数可以用于此目的吗?
我想删除sympy符号表达式中任何等于1的系数,例如:我想要1.0x**2,x**2有办法做到吗?另外,如果可能的话,可以舍入整数,2.0x**2例如2*x**2
如果我们知道变量满足某个方程,是否可以简化 SymPy 中的表达式?例如,在 Mathematica 中我们可以这样写:
Simplify[a+b-c, a+b==c]
Run Code Online (Sandbox Code Playgroud)
当然,在这种情况下,可以解决a并进行替换。然而,对于长表达式来说,进行全局替换可能没有意义。如果目标是产生尽可能最短的表达式,则可能需要对某些项应用替换,而其余项保持不变,或者求解b代替a。
我认为sympy.assumptions模块不能对多个变量相互施加限制。Simplify[expr, assum]是否可以在 SymPy 中以任何其他方式实现 Mathematica 的功能?
或者还有其他开源项目可以做这样的事情吗?
作为一个年轻的程序员,我总是试图寻找我的技能的应用程序.
无论如何,我现在正在接受trig并且我们正在研究单位圆,从度数转换为坐标的公式是(sinθ,cosθ)(据我所知).
但是,我遇到的困难是我需要将值保持为分数.
基本上,我计划的算法是:
i = 0
while i < 360:
print(i, "=", calc(i))
i += 15
Run Code Online (Sandbox Code Playgroud)
现在,calc可以给出任何名称,并且将是一个函数,它返回x和y的坐标(可能是一个元组)给定x =sinθ和y =cosθ.
我遇到的问题是Python中的sin会返回介于-1和1之间的浮点,但是,我需要找到一种方法让它返回一个分数.例如,在该图中 ,坐标是有理数.
我该怎么办?我应该编写自己的正弦函数和余弦函数吗?如果是,我应该怎么做?
我正在尝试解决s域中的方程组.因此,以矩阵形式建立这个方程组:
a=[.4*s+s+5 -5; -5 .5*s+5]
c=[3/s; 3/(2*s)]
(1/s)*a*b=c
Run Code Online (Sandbox Code Playgroud)
我只是得到s未定义的错误.我怎样才能用s来解决b?
我想在Matlab中定义一个符号函数矩阵(而不是变量).在工作区中,我希望它是大小为N-by-M的类symfun的元素(其中N和M是正整数).
我在matlab中找不到简化这个符号表达式的方法.x将以实数进行评估.
syms x
expr = abs(x)^2
Run Code Online (Sandbox Code Playgroud)
我期待结果
expr = x^2
Run Code Online (Sandbox Code Playgroud)
Matlab给出了
expr = abs(x)^2
Run Code Online (Sandbox Code Playgroud) symbolic-math ×10
matlab ×5
python ×4
sympy ×4
fractions ×1
integral ×1
math ×1
python-3.x ×1
solver ×1
trigonometry ×1