前言:
想利用medium為自己記錄一下學習歷程,並能透過分門別類去讓自己再次複習
學習使用Sympy模組
先安裝此模組
pip install sympy
導入sympy模組中的Symbol
from sympy import Symbol,symbols,sympify,solve
from sympy.plotting import plot
1.利用Symbol定義符號
x = Symbol(“x”)
print(x+x+2) → 2*x+2
2.使用name來了解所定義符號
print(x.name)→ ‘x’
3.定義多個符號變數
a= Symbol(‘a’)
b= Symbol(‘b’)
c= Symbol(‘c’)
import sympols使用symbols()簡化
a,b,c = symbols(‘a,b,c’)
4.符號的運算
y = Symbol(‘y’)
z= 5*x+6*y+x*y
print(z)→x*y+5*x+6*y
5.將數值帶入公式,使用subs({x:n…}),subs()的參數是字典
eq = 5*x + 6*y
result = eq.subs({x:1,y:2})
print(result)→17
6.將字串轉為數學表達式
aq = input(‘請輸入公式:’), 輸入:x**3+5*x**2+6*x-8
aq = sympify(aq)
f = 2*aq
print(f) → 2*x**3 + 10*x**2 + 12*x — 16
results = aq.subs({x:1})
print(results)→4
7.利用solve()解一元二次方程式,所獲得的結果是以串列方式傳回
bq = 3*x+5–8
print(solve(bq)) →[1]
8.解一元二次方程式
cq = x**2+5*x-6
print(solve(cq))→[-6, 1]
9.解含未知數的方程式,第二個參數x宣告解哪個符號
a,b,c = symbols(‘a,b,c’)
dq = a*x*x+b*x+c
print(solve(dq,x)) →[(-b + sqrt(-4*a*c + b**2))/(2*a), -(b + sqrt(-4*a*c+ b**2))/(2*a)]
10.解聯立方程式,得到的解以字典顯示
y = Symbol(‘y’)
eq1 = 3*x+2*y-6
eq2 = 9*x+y-3
print(solve((eq1,eq2))) →{x: 0, y: 3}
接著利用subs()來做驗證
ans=solve((eq1,eq2))
ans1=eq1.subs({x:ans[x],y:ans[y]})
ans2=eq2.subs({x:ans[x],y:ans[y]})
print(ans1,ans2) →0 0
11.使用Sympy模組繪製座標圖(sympy.plotting的plot)
plot(3*x-2)
12.設定繪圖的x軸區間,設定在-5到5
plot((3*x-2),(x,-5,5))
13.增加繪圖標題與軸標題
plot((3*x-2),(x,5,-5),title=”Sympy”,xlabel=’x’,ylabel=‘3x-2’)
14. 多函數圖形
plot((3*x-2),(2*x+2))
15. 使用plot()中的show,show = False則不會顯示圖形
16.使用不同顏色繪圖,預設是藍色,下面第二條用紅色顯示
line = plot(3*x-2,2*x+2,show = False)
line[1].line_color = ‘r’
line.show()
17.圖表增加圖例,增加legend = True
line = plot(3*x-2,2*x+2,legend = True,show = False)
line[1].line_color = ‘r’
line.show()
留言列表