使用python解決一元二次方程

2021-10-24 13:13:22 字數 4541 閱讀 9627

一元二次方程的一般式為ax^2+bx+c=0(a不等於0)

一元二次方程的解法有幾種,最簡便的是公式法,即=b±根號b^2-4ac除以2a

a=

int(

input

("請輸入二次項的係數,如有根號,請輸入無根號的部分"))

b=int(

input

("請輸入一次項的係數,如有根號,請輸入無根號的部分"))

c=int(

input

("請輸入常數項的值,如有根號,請輸入無根號的部分"))

g=int(

input

("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

h=int(

input

("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

i=int(

input

("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"

)

先詢問出abc的值, 以及帶不帶根號

j=

(g**(1

/2))

*a k=

(h**(1

/2))

*b l=

(i**(1

/2))

*c

這一步就是分別計算出a,b,c的值(根號預設為二次)

d=

(k**2)

-4*j*l

這一步就相當於上面的b^2=4ac,只不過乘上了乙個根號

if d<

0or g==0:

print

("此方程沒有實數解"

)

這一步就是最基礎的篩選,因為b^2-4ac小於0的話方程是沒有實數解的,所以要先排除。

另外g也不能等於0,因為如果等於0的話就是一元一次方程了,不符合題意。

else

:print

("此方程有實數解"

) e=b+

(d**(1

/2))

f=b-

(d**(1

/2))

a=e/(2

*a) b=f/(2

*a)

排去了無解的式子,就要開始分析有解的式子了,e和f就是b±根號b^2-4ac除以2a上面的分子,

當然,分子分兩種請況,一種是加,另一種是減,加對應e,減對應f

a和b也很好理解,就是分母(除以2a)

if a !=b :

print

("該方程的實數解為x1="

,-a,

"x2="

,-b)

if a==b :

print

("實數解為x1=x2="

,-a or

-b)

最後再分析一下a和b的情況,如果a不等於b,就列印出兩個數的值,等於的話就隨機列印乙個數的值(當然,也可以之列印乙個)

最後的程式:

a=

int(

input

("請輸入二次項的係數,如有根號,請輸入無根號的部分"))

b=int

(input

("請輸入一次項的係數,如有根號,請輸入無根號的部分"))

c=int

(input

("請輸入常數項的值,如有根號,請輸入無根號的部分"))

g=int

(input

("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

h=int

(input

("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

i=int

(input

("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

j=(g**(1

/2))

*ak=

(h**(1

/2))

*bl=

(i**(1

/2))

*cd=

(k**2)

-4*j*l

if d<

0or g==0:

print

("此方程沒有實數解"

)else

:print

("此方程有實數解"

) e=b+

(d**(1

/2))

f=b-

(d**(1

/2))

a=e/(2

*a) b=f/(2

*a)if a !=b :

print

("該方程的實數解為x1="

,-a,

"x2="

,-b)

if a==b :

print

("實數解為x1=x2="

,-a or

-b)

當然,各位學霸也可以不抄答案,而是自己驗算一遍:

a=

int(

input

("請輸入二次項的係數,如有根號,請輸入無根號的部分"))

b=int

(input

("請輸入一次項的係數,如有根號,請輸入無根號的部分"))

c=int

(input

("請輸入常數項的值,如有根號,請輸入無根號的部分"))

g=int

(input

("二次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

h=int

(input

("一次項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

i=int

(input

("常數項是否有根號?如有,請輸入去根號的數字,如無,請鍵入「1」"))

j=(g**(1

/2))

*ak=

(h**(1

/2))

*bl=

(i**(1

/2))

*cd=

(k**2)

-4*j*l

if d<

0or g==

0or h==

0or i==0:

print

("此方程沒有實數解"

)else

:print

("此方程有實數解"

) e=b+

(d**(1

/2))

f=b-

(d**(1

/2))

a=e/(2

*a) b=f/(2

*a) z=

int(

input

("請輸入你計算的第乙個值(分子)(不帶根號)(加上的那個)"))

ax=int(

input

("請輸入第乙個值的分母,如沒有,請輸入「1」"))

y=int(

input

("請輸入你計算的第乙個值(根號下)如沒有,請輸入「0」"))

x=input

("請輸入你計算的第乙個值的運算"

)if x==

'加':

diyi=

(z/ax)

+y**(1

/2)if x==

'減':

diyi=

(z/ax)

-y**(1

/2)if diyi==

-a :

print

("你算對了!"

)else

:print

("你算錯了!"

) zz=

int(

input

("請輸入你計算的第二個值(不帶根號)(減去的那個)"))

bx=int(

input

("請輸入第二個值的分母,如沒有,請輸入「1」"))

yy=int(

input

("請輸入你計算的第二個值(根號下)如沒有,請輸入「0」"))

xx=input

("請輸入你計算的第二個值的運算"

)if xx==

'加':

dier=

(zz/bx)

+yy**(1

/2)if xx==

'減':

dier=

(zz/bx)

-yy**(1

/2)if dier==

-b :

print

("你算對了!"

)else

:print

("你算錯了!"

)if a !=b :

print

("該方程的實數解為x1="

,-a,

"x2="

,-b)

if a==b :

print

("實數解為x1=x2="

,-a)

結束

python解一元二次方程序分享

琢磨了一下,自己寫了一段 關於解一元二次方程序。分享給大夥,個人感覺很渣,有不合適的地方還請大家多多指教。usr bin env python coding utf 8 351 01.py 計算一元二次方程序 solving a quadratic equation import math 呼叫標準...

一元二次方程

作 者 a42 覃燕玲 完成日期 2014年 10 月 25 日 版 本 號 v1.0 問題描述 建立乙個程式解平方根 輸入描述 ax 2 bx x 0 a o 程式輸出 平方根 using system using system.collections.generic using system.l...

一元二次方程

一 知識要點 一元二次方程和一元一次方程都是整式方程,它是初中數學的乙個重點內容,也是今後學習數學的基 礎。一元二次方程的一般形式為 ax 2 2為次數,即x的平方 bx c 0,a 0 它是只含乙個未知數,並且未知數的最高次數是2 的整式方程。解一元二次方程的基本思想方法是通過 降次 將它化為兩個...