You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Sympy中读取指数幂:基于正交矩阵与指数函数的加密方案实现问题

SymPy提取指数幂并存储到数组的实现方法

如果你处理的是带指数函数的表达式/矩阵,可按以下步骤实现需求:

  • 基础依赖导入
import sympy as sp
import numpy as np
  • 单个表达式场景提取指数
    假设你拿到的加密后表达式是含指数函数的多项式形式:
# 先定义方案中用到的符号
x = sp.symbols('x')
# 示例表达式,可替换为你实际生成的加密表达式
expr = 3*sp.exp(2*x) + 5*sp.exp(-7*x) + sp.exp(1.5*x)

# 抓取所有exp项
exp_terms = expr.atoms(sp.exp)
# 提取完整指数存入数组
exponents = np.array([term.args[0] for term in exp_terms])

# 若仅需要指数中x的系数(符合该加密方案指数为x线性项的设定)
exp_coeffs = np.array([sp.expand(e).coeff(x) for e in exponents])

输出的exp_coeffs即为存储了所有指数系数的数值数组。

  • SymPy矩阵场景提取指数
    如果指数项存储在正交矩阵的元素中,遍历矩阵元素处理即可:
# 示例2*2正交矩阵,可替换为你实际生成的矩阵
M = sp.Matrix([
    [sp.exp(3*x), sp.exp(-2*x)],
    [sp.exp(5*x), sp.exp(4*x)]
])

exponents_list = []
for elem in M:
    exp_terms = elem.atoms(sp.exp)
    for term in exp_terms:
        exponents_list.append(term.args[0])
# 转为numpy数组
exponents_arr = np.array(exponents_list)

*注意:如果表达式存在嵌套指数、或者指数为非线性形式,按需调整term.args[0]后的解析逻辑即可,SymPy的表达式树支持逐层遍历提取对应节点值。


内容的提问来源于stack exchange,提问作者jdella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:54:04