前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【说站】Python SymPy求极值

【说站】Python SymPy求极值

作者头像
很酷的站长
发布2022-11-23 13:26:48
1.4K0
发布2022-11-23 13:26:48
举报
文章被收录于专栏:站长的编程笔记

Python SymPy求极值

SymPy是Python符号计算库。其目标是成为一个功能齐全的计算机代数系统,代码保持简洁,易于理解和扩展。Python是完全由Python编写的,不依赖外部库。

1、求、求导、求偏导以及带值求导

代码语言:javascript
复制
import sympy
#求
#设置符号变量Symbol只能创建一个变量 symbols 可一次定义多个变量
x1,x2,x3,x4=sympy.symbols('x1,x2,x3,x4')
#创建函数建立方程式
def F(t):
    return sympy.sin(t)/t
def N(t):
    return (x1**3+3*x1**2+1)/(4*x1**3+2*+3)
#调用limit求
limF=sympy.limit(F(x1),x1,0)
limN=sympy.limit(N(x1),x1,sympy.oo)
print("x1趋于0的为{}".format(limF))
print("x1趋于0的为{}".format(limN))
#求导
#创建求导函数
def S(t):
    return sympy.sec(t) #正割
def S1(x):
    return 2*x**4+2
#调用diff函数求导
s=sympy.diff(S(x1),x1).subs(x1,1) #subs 带值求导
print('S在1处的导数为{}'.format(s))
#求多阶导数 2阶
s1=sympy.diff(S1(x1),x1,2)
#带值计算
print("S1的二阶导数{}   带入值2计算为{}".format(s1,s1.subs(x1,2)))
#建立求偏导函数
def PD(x,y,z):
    return sympy.sin(x+pow(y,2)-sympy.exp(z))
#对x求偏导
x=sympy.diff(PD(x1,x2,x3),x1)
# print(x.subs(x1,2))
#对y求偏导
y=sympy.diff(PD(x1,x2,x3),x2)
#对z求偏导
z=sympy.diff(PD(x1,x2,x3),x3,2)
print("x的偏导为{}\ny的偏导为{}\nz的二次偏导为{}".format(x,y,z))
片

2、建立表达式

不求其,只需要表达式。也就是说是一个未计算(评估)的,是一个表达式。

代码语言:javascript
复制
from sympy import Limit, sin, Symbol
from sympy.abc import x
Limit(sin(x)/x, x, 0) # 这是一个表达式,不执行计算
Limit(1/x, x, 0, dir='-') # 这也是一个表达式,不执行计算

以上就是Python SymPy求极值的用法,希望对大家有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python SymPy求极值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档