前言
sympy不仅在符号运算方面强大,在解方程方面也是很强大。
本章节学习对应官网的:Solvers
官方教程
https://docs.sympy.org/latest/tutorial/solvers.html
(一)求解多元一次方程-solve()
1.说明:
解多元一次方程可以使用solve(),在sympy里,等式是用Eq()来表示,
例如:2x=42x=4 表示为:Eq(x*2, 4)
2.源代码:
""" 解下列二元一次方程 2x-y=3 3x+y=7 """ # 导入模块 from sympy import * # 将变量符号化 x = Symbol('x') y = Symbol('y') z = Symbol('z') # 解一元一次方程 expr1 = x*2-4 r1 = solve(expr1, x) r1_eq = solve(Eq(x*2, 4), x) print("r1:", r1) print("r1_eq:", r1_eq) # 解二元一次方程 expr2 = [2*x-y-3, 3*x+y-7] r2 = solve(expr2, [x, y]) print("r1:", r2) # 解三元一次方程 f1 = x+y+z-2 f2 = 2*x-y+z+1 f3 = x+2*y+2*z-3 r3 = solve([f1, f2, f3], [x, y, z]) print("r3:", r3)
3.输出:
(二)解线性方程组-linsolve()
1.说明:
在sympy中,解线性方程组有三种形式:
默认等式为0的形式:linsolve(eq, [x, y, z])
矩阵形式:linsolve(eq, [x, y, z])
增广矩阵形式:linsolve(A,b, x, y, z)
2.源代码:
""" x+y+z-2=0 2x-y+z+1=0 x+2y+2z-3=0 """ from sympy import * x, y, z = symbols("x y z") # 默认等式为0的形式 print("======默认等式为0的形式 =======") eq = [x+y+z-2, 2*x-y+z+1, x+2*y+2*z-3] result = linsolve(eq, [x, y, z]) print(result) print(latex(result)) # 矩阵形式 print("======矩阵形式 =======") eq = Matrix(([1, 1, 1, 2], [2, -1, 1, -1], [1, 2, 2, 3])) result = linsolve(eq, [x, y, z]) print(result) print(latex(result)) # 增广矩阵形式 print("======增广矩阵形式 =======") A = Matrix([[1, 1, 1], [2, -1, 1], [1, 2, 2]]) b = Matrix([[2], [-1], [3]]) system = A, b result = linsolve(system, x, y, z) print(result) print(latex(result))
3.输出:
(三)解非线性方程组-nonlinsolve()
1.说明:
nonlinsolve()用于求解非线性方程组,例如二次方,三角函数,,,等方程
2.源代码:
""" x**2+y**2-2=0 x**3+y**3=0 """ import sympy as sy x, y = sy.symbols("x y") eq = [x**2+y**3-2, x**3+y**3] result = sy.nonlinsolve(eq, [x, y]) print(result) print(sy.latex(result))
3.输出:
(四)求解微分方程-dsolve()
1.说明:
求解微分方程使用dsolve(),注意:
f = symbols('f', cls=Function)的作用是声明f()是一个函数。
2.源代码:
from sympy import * # 初始化 x = symbols('x') f = symbols('f', cls=Function) # 表达式 expr1 = Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x)) # 求解微分方程 r1 = dsolve(expr1, f(x)) print(r1) print("原式:", latex(expr1)) print("求解后:", latex(r1))
3.输出:
原式:
f(x)"htmlcode">
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]