当前位置: 首页 > 知识库问答 >
问题:

有了Julia Symbolics,我怎么能做数学求和呢?

双浩涆
2023-03-14

我用的是象征。jl和我想做一个数学求和,相当于Symphy的函数和(https://docs.sympy.org/latest/modules/concrete.html)

Symbolics.jl的留档表明有可能:"-离散数学(求和、乘积、二项式系数等的表示)"

然而,在常见问题中,建议的情况正好相反:

允许循环,但循环迭代次数不应要求您知道符号x的值

共有3个答案

华哲茂
2023-03-14

我做了一个PR,让导数计算失败,而不是在这种情况下返回零。https://github.com/JuliaSymbolics/Symbolics.jl/pull/530

涉及符号数组的微分还没有得到符号学的支持,但它很快就会到来!https://github.com/JuliaSymbolics/Symbolics.jl/issues/518

皇甫逸清
2023-03-14

它扩展了Julia本身,因此实际上没有太多需要记录的内容:只需在符号值上使用Julia即可。因此,在这里,只需使用sum,这是Base Julia的一部分。

julia> using Symbolics

julia> @variables x[1:5]
1-element Vector{Symbolics.Arr{Num, 1}}:
 x[1:5]

julia> x = collect(x)
5-element Vector{Num}:
 x[1]
 x[2]
 x[3]
 x[4]
 x[5]

julia> sum(x)
x[1] + x[2] + x[3] + x[4] + x[5]

允许循环,但循环迭代次数不应要求您知道符号x的值

这也是Symphy或任何其他符号跟踪系统的一个限制,因为它仅限于符号可重复(准静态)代码。这篇博文将对此进行更深入的讨论。

梅安平
2023-03-14

你可以使用(x…) 用于符号向量的求和。

julia> @variables x[1:5]
1-element Vector{Symbolics.Arr{Num, 1}}:
 x[1:5]

julia> +(x...)
x[1] + x[2] + x[3] + x[4] + x[5]

julia> Symbolics.derivative(+(x...), x[2])
1

小心sum(x),因为它似乎没有展开,并且会产生错误的结果:

julia> sum(x)
Symbolics._mapreduce(identity, +, x, Colon(), (:init => false,))

julia> Symbolics.derivative(sum(x), x[2])
0

最后但并非最不重要的一点是,再做一步,定义求和符号,以获得一次愉快的体验:

julia> ∑(v) = +(v...)
∑ (generic function with 1 method)

julia> ∑(x)
x[1] + x[2] + x[3] + x[4] + x[5]

julia> Symbolics.derivative(100∑(x), x[2])
100

 类似资料:
  • 我使用两个数组编写了一个简单的MergeSort实现,它输出垃圾: 1 2 3 2 5 4 4 3 9 8 8 7 8 7 6 5 17 16 16 15 16 15 14 13 16 15 14 13 12 11 10 9 33 32 31 32 31 30 29 32 31 30 29 28 27 26 25 25 32 31 30 29 28 27 26 25 24 23 22 21 20

  • 我在这个问题上纠缠了两天。我已经编写了一个Python脚本,它向AWS Pinpoint服务发出PUT请求。像许多其他AWS服务一样,Pinpoint需要对请求进行签名身份验证,我用Python处理了这一点。 现在,我正试图将我的脚本翻译成一个用于Symfony的PHP服务。当我运行我的第一个AWS pinpoint请求时,我得到: 我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 问题内容: 我有一个树结构,其中每个都有一个父级和一个。每个节点都有一个,我想在其中选择进行查询,即该节点和所有父节点的标题。如何编写此查询? 单个标题的查询就是这样,但是就像我说的那样,我希望它扩展到整个父母分支。 干杯 尼克 问题答案: 您不能使用HQL进行递归查询。看到这个。如前所述,它甚至不是标准的SQL。您有两种选择: 编写特定于供应商的递归本机SQL查询 进行多个查询。例如: 我肯定会

  • 本文向大家介绍SSR解决了什么问题?有做过SSR吗?你是怎么做的?相关面试题,主要包含被问及SSR解决了什么问题?有做过SSR吗?你是怎么做的?时的应答技巧和注意事项,需要的朋友参考一下 "你是怎么做的?" 废话,能怎么做,看着文档指引去做,搭 webpack,nodejs

  • < b >想改进这个问题?通过编辑此帖子添加详细信息并澄清问题。 我如何用div制作所谓的面具。你好,我正在寻找解决我问题的方法,如果有人能帮助我,我会非常感激。我希望你只能通过div看到背景。如果有人能帮助我,我会非常感激。非常感谢。亚历克斯。