gpt4 book ai didi

SageMath - 预合成向量值函数

转载 作者:行者123 更新时间:2023-12-05 04:57:42 24 4
gpt4 key购买 nike

给定一个从 R 到 R^n 的函数,我想通过预组合定义一个新函数,例如如下

alpha(x) = [e^x,e^(-x)]
beta(x) = alpha(-x+2)

但是尝试以这种方式这样做会引发错误“无法将 (e^(-x + 2), e^(x - 2)) 转换为符号表达式”

现在是类似但更简单的代码版本

alpha(x) = e^x
beta(x) = alpha(-x+2)

工作完美,所以问题是由于 alpha 是多值的。

原始代码的以下变体完全符合我的要求

alpha(x) = [e^x,e^(-x)]
beta(x) = [alpha[0](-x+2),alpha[1](-x+2)]

但要求我假设 alpha 的长度,这是不可取的。以及该问题的明显解决方案

alpha(x) = [e^x,e^(-x)]
for i in range(0,len(alpha)):
beta[i](x) = alpha[i](x)

或任何变体随即抛出错误“无法分配给函数调用”

我的问题如下:有没有办法做这个预合成?特别是不假设 alpha 的长度。我控制函数 alpha 和 beta 的定义方式,因此如果有另一种定义它们的方法(例如使用 lambda 符号或类似的方法)让我这样做,那也是可以接受的。但请注意,我想在我的代码中的某个时刻做一些等效于以下的事情... + beta.derivative(x).dot_product( ...

最佳答案

如题中定义,alpha不是符号函数返回向量,而是可调用函数的向量。

下面我们描述另外两种定义 alpha 和 beta 的方法,将 alpha 定义为符号环上的向量,并通过替换定义 beta,或定义 alpha 和beta 作为 Python 函数。

问题中的原始方法:

sage: alpha(x) = [e^x, e^-x]

sage: alpha
x |--> (e^x, e^(-x))
sage: alpha.parent()
Vector space of dimension 2 over Callable function ring with argument x

在符号环上使用向量

sage: alpha = vector([e^x, e^-x])

sage: alpha
(e^x, e^(-x))
sage: alpha.parent()
Vector space of dimension 2 over Symbolic Ring

sage: beta = alpha.subs({x: -x + 2})
sage: beta
(e^(-x + 2), e^(x - 2))

使用 Python 函数

sage: def alpha(x):
....: return vector([e^x, e^-x])
....:
sage: def beta(x):
....: return alpha(-x + 2)
....:
sage: beta(x)
(e^(-x + 2), e^(x - 2))

一些相关资源。

查询:

问题:

门票:

关于SageMath - 预合成向量值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64348467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com