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

如何用Python自动替换SymPy符号变量求解函数斜率及vy?

自动代入SymPy导数表达式变量值的实现方法

优化后的代码

from sympy import *
import numpy as np

x = symbols('x')
y = sin(0.5*x)
vx = -15
x_v = 2*np.pi

# 对目标函数求导,得到符号化的斜率表达式
slope = diff(y)
print("符号斜率表达式:", slope)

# 自动将符号变量x替换为指定位置x_v,得到该点的实际斜率
s = slope.subs(x, x_v)
theta = atan(s)
vy = tan(theta) * vx

print("y方向速度vy:", vy)

实现思路

SymPy的符号表达式自带subs()方法,专门用于替换符号变量:

  • 调用diff(y)得到的slope是一个符号表达式(此处为0.5*cos(0.5*x))
  • 使用slope.subs(x, x_v)可以一键将表达式中的x替换为x_v的数值,无需手动推导并改写斜率公式
  • 这种方式完全通用,无论目标函数y是什么可导形式,只需保持求导+替换的逻辑,就能适配任意位置的斜率计算

扩展说明

如果需要同时替换多个符号变量,subs()支持传入字典参数,例如:

a, x = symbols('a x')
y = sin(a*x)
slope = diff(y)
# 同时替换a和x为指定值
s = slope.subs({a: 0.5, x: 2*np.pi})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:21