編程最好的方法就是實(shí)踐,當(dāng)你能處理絕大多數(shù)例子之后,你會(huì)發(fā)現(xiàn)很多難懂的概念也就自然的解決了。python編程最好的方法就是實(shí)踐,當(dāng)你能處理絕大多數(shù)例子之后,你會(huì)發(fā)現(xiàn)很多難懂的概念也就自然的解決了。
目前累計(jì)服務(wù)客戶超過千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
一元二次方程為:ax^2+bx+c=0
我們先編寫一個(gè)最簡(jiǎn)單的版本,我們成功的計(jì)算除了數(shù)值。下面這個(gè)程序不適合復(fù)數(shù)形式
方法/步驟
用Python解數(shù)學(xué)方程,需要用到Python的一個(gè)庫(kù)——SymPy庫(kù)。
SymPy是符號(hào)數(shù)學(xué)的Python庫(kù),它的目標(biāo)是成為一個(gè)全功能的計(jì)算機(jī)代數(shù)系統(tǒng),同時(shí)保持代碼簡(jiǎn)潔、易于理解和擴(kuò)展。
如果你的電腦上還沒有安裝sympy庫(kù),那就趕緊安裝吧,安裝命令:
pip3 install sympy
請(qǐng)點(diǎn)擊輸入圖片描述
先來解一個(gè)簡(jiǎn)單點(diǎn)的方程吧。
題目: 5x + 20 = 100
先直接上代碼:
from sympy import *
x = Symbol('x')
print(solve([5*x + 20 - 100], [x]))
請(qǐng)點(diǎn)擊輸入圖片描述
再來一個(gè)復(fù)雜點(diǎn)的二元一次方程吧。
題目:3x + 4y =49,?8x- y = 14
代碼如下:
from sympy import *
x = Symbol('x')
y = Symbol('y')
print(solve([3*x + 4*y - 49, 8*x - y - 14], [x, y]))
請(qǐng)點(diǎn)擊輸入圖片描述
有沒有發(fā)現(xiàn)規(guī)律呢,簡(jiǎn)單總結(jié)一下:
1)變量賦值,使用symbol函數(shù)轉(zhuǎn)換;
2)將方程式移到方程的左邊,使右邊等于0;
3)使用solve函數(shù)解方程。
當(dāng)然了,python的基礎(chǔ)語(yǔ)法必須掌握,至少需要掌握python最基礎(chǔ)的算數(shù)運(yùn)算符。
+ ?加 ---- 兩個(gè)對(duì)象相加
- ?減 ----- 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)
* ?乘 ----- 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串
/ ?除 ----- x 除以 y
% ?取模 ----- 返回除法的余數(shù)
** ?冪 ----- 返回x的y次冪
log() ?對(duì)數(shù)-----對(duì)數(shù) log()
下面來個(gè)難度大點(diǎn)的方程。
請(qǐng)點(diǎn)擊輸入圖片描述
代碼如下:
from sympy import *
t = Symbol('t')
x = Symbol('x')
m = integrate(sin(t)/(pi-t), (t, 0, x))
print(integrate(m, (x, 0, pi)))
請(qǐng)點(diǎn)擊輸入圖片描述
import numpy as np
def solve_quad(a,b,c):
if a == 0:
print('您輸入的不是二次方程!')
else:
delta = b*b-4*a*c
x = -b/(2*a)
if delta == 0:
print('方程有惟一解,X=%f'%(x))
return x
elif delta 0:
x1 = x-np.sqrt(delta)/(2*a)
x2 = x+np.sqrt(delta)/(2*a)
print('方程有兩個(gè)實(shí)根:X1=%f,X2=%f'%(x1,x2))
return x1,x2
else:
x1 = (-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)
x2 = (-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)
print(x1,x2)
return x1,x2
Python
是完全面向?qū)ο蟮恼Z(yǔ)言。函數(shù)、模塊、數(shù)字、字符串都是對(duì)象。并且完全支持繼承、重載、派生、多繼承,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動(dòng)態(tài)類型。相對(duì)于Lisp這種傳統(tǒng)的函數(shù)式編程語(yǔ)言,Python對(duì)函數(shù)式設(shè)計(jì)只提供了有限的支持。有兩個(gè)標(biāo)準(zhǔn)庫(kù)(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗(yàn)的函數(shù)式程序設(shè)計(jì)工具。
import math
a=int(input('請(qǐng)輸入a的值:'))
b=int(input('請(qǐng)輸入b的值:'))
c=int(input('請(qǐng)輸入c的值:'))
derta=(b**2-4*a*c)
if a == 0:
print('您輸入的a為0,方程ax^2+bx+c=0不能作為一元二次方程')
elif derta0:
print('方程無實(shí)數(shù)解')
elif derta==0:
print('方程有解,有一個(gè)實(shí)數(shù)解:')
print(b*(-1)/(a*2))
else:
print('方程有解,有兩個(gè)實(shí)數(shù)解:')
print((-1*b+math.sqrt(derta))/2*a)
print((-1*b-math.sqrt(derta))/2*a)
import?numpy?as?np
def?solve_quad(a,b,c):
if?a?==?0:
print('您輸入的不是二次方程!')
else:
delta?=?b*b-4*a*c
x?=?-b/(2*a)
if?delta?==?0:
print('方程有惟一解,X=%f'%(x))
return?x
elif?delta??0:
x1?=?x-np.sqrt(delta)/(2*a)
x2?=?x+np.sqrt(delta)/(2*a)
print('方程有兩個(gè)實(shí)根:X1=%f,X2=%f'%(x1,x2))
return?x1,x2
else:
x1?=?(-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)
x2?=?(-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)
print('方程有兩個(gè)虛根,如下所示:')
print(x1,x2)
return?x1,x2
當(dāng)前名稱:python函數(shù)中解方程,python怎么求方程解
文章源于:http://chinadenli.net/article30/heecso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)