python中用sympy对变量求偏导

用sympy 求偏导

import numpy as np
import pandas as pd
import sympy as sy


theta, n, k = sy.symbols('theta, n, k')
z = theta+n+k
# print('z :{}'.format(z))
# result = z.subs({theta: 0, n: 1})  # 用数值分别对x、y进行替换
# print(result)
#
dx = sy.diff(z, theta)  # 对x求偏导
# print(dx)
# result = dx.subs({theta: 0, n: 2, k: 1})
# print(result)
#
dy = sy.diff(z, n)  # 对y求偏导
# print(dy)
# result = dy.subs({theta: 0, n: 2, k: 1})
# print(result)

dz = sy.diff(z, k)  # 对y求偏导
print(dz)
theta_set = [0, 0.7854, 1.5708, 2.3561, 3.1415]
n_set = [0, 0.5, 1, 2, 3, 8]
k_set = [1, 2, 3, 10]
result = np.zeros([len(k_set), len(n_set), len(theta_set)])
for k1 in k_set:
    for n1 in n_set:
        for theta1 in theta_set:
            # save = dz.subs({theta: theta1, n: n1, k: k1})
            # save = dx.subs({theta: theta1, n: n1, k: k1})
            save = dy.subs({theta: theta1, n: n1, k: k1})
            result[k_set.index(k1)][n_set.index(n1)][theta_set.index(theta1)] = save
for i in range(len(k_set)):
    df = pd.DataFrame(result[i])
    df.to_csv('result.csv', mode='a')

# result = dz.subs({theta: 3.14, n: 1, k: 1})
# print(result)
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值