『壹』 python 二分法求方程的根
import matplotlib.pyplot as plt
a=3
b=-2
x=(a+b)/2.0 # 中點
def f(x): # 定義方程式
y=x-2**0.5
return(y)
u=max([a,b])
l=min([a,b])
i=0
z=[]
est=[]
# 循嫌困鍵環體
while abs(f(x))> 10.0**(-15.0): # 計算精度
if f(u)*f(l)>0: # 判斷輸入假設是否芹巧成立
print('Error: Assumption not holds! ')
break
if f(x)*f(u)>0: # 判斷零點落尺蔽入區間
u=x
x=(x+l)/2.0
else:
l=x
x=(x+u)/2.0
i=i+1
z=z+[abs(x-2**0.5)]
est=est+[abs(a-b)/2**i]
plt.semilogy(z)
plt.semilogy(est)
plt.grid('on')
plt.legend(['simu','theo'])
plt.show()
『貳』 請問一下python程序代碼錯在哪裡了,謝謝。是通過二分法求方程根的函數
代碼有兩個地方有問題
1:19行的return縮進有問題,19行的return不應該出現在一個非方法的地方
2:代碼有可能出現死循環,在我輸入a:10,b:10,c:10,d:10的時候出現死循環,請檢查代碼邏輯
我已經調整好了
deff(x):
s=(a*x)**3+(b*x)**2+(c*x)+d
returns
a=int(input("a"))
b=int(input("b"))
c=int(input("c"))
d=int(input("d"))
mid=0
foriinrange(-100,100,1):
x1=int(i)
x2=int(i+1)
iff(x1)*f(x2)<0:
lo,hi=x1,x2
whilehi-lo>0.01:
mid=(lo+hi)/2
iff(lo)*f(mid)<0:
hi=mid
else:
lo=mid
else:
pass
printmid
『叄』 python里的二次根式怎麼寫
二次方根,表示為〔√ ̄〕。
如:數學語言為:√ ̄16=4。語言描述為:根號下16=4。
以下實例為通過用戶輸入一個數字,並計算這個數字的平方根:#-*-coding:UTF-8-*-#Filename:test.pynum=float(input('請輸入一個數字:'))num_sqrt=num**0.5print('%0.3f的平方根為%0.3f'%(num,num_sqrt))。執行以上代碼輸出結果為:$pythontest.py請輸入一個數字:44.000的平方根為2.000,在該實例中,我們通過用戶輸入一個數字,並使用指數運算符**來計算該數的平方根。
『肆』 python怎麼求解一元二次方程的根
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('方程有兩個實根: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
是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。
『伍』 利用Python語言計算方程的根
import math
def erfenfa(function, a, b): #定義函數,利用二分法求方程的根,氏棗褲function為具體方程,a,b為根的取值范圍
start = a
end = b
if function(a) == 0:
殲簡return a
elif function(b) == 0:
return b
elif function(a) * function(b) > 0:
print("couldn't find root in [a,b]")
return
else:
mid = (start + end) / 2
while abs(start - mid) > 0.0000001:
if function(mid) == 0:
return mid
岩好elif function(mid) * function(start) < 0:
end = mid
else:
start = mid
mid = (start + end) / 2
return mid
def f(x):#定義構造方程式函數
return math.pow(x, 5) -15*math.pow(x, 4) +85*math.pow(x, 3)-225*pow(x,2)+274*x - 121
print(round(erfenfa(f, 1.5, 2.4),6))
『陸』 python如何求平方根
while True: a=float(input('請輸入實數:'))
def power(x):
return x*x print(a,'^2=',power(a))
b=int(input('是否要繼續計算,是,請輸入1,否,請輸入0: '))
if b==0: print('已退出計算器')
break
else:
continue
(6)在python中二分法求函數根擴展閱讀:
使用Python完成,輸入兩個數,得到加減乘除余結果的功能,其中結果輸出使用不同的格式。
1. 定義兩個變數a,b,使用鍵盤輸入的方式。python的2.x版本中鍵盤輸入有兩種方式可以實現:raw_input(),input(),在3.X版本中兩者合並為一個,只支持input().
2. 輸出結果:
(1) 輸出string型的結果
[python] view plain print?
<codeclass="language-python">print("A+B=%s"%(a+b))#outputstring</code>
print("A+B = %s"%(a+b)) # output string
(2) 輸出int型的結果:默認格式,佔位符格式,填充佔位符格式,靠左格式
[python] view plain print?
<codeclass="language-python">print("A-B=%d"%(a-b))#outputint
print("A-B=%4d"%(a-b))
print("A-B=%04d"%(a-b))
print("A-B=%-4d"%(a-b))</code>
print("A-B = %d"%(a-b)) # output intprint("A-B = %4d"%(a-b))print("A-B = %04d"%(a-b))print("A-B = %-4d"%(a-b))
結果:a=7,b=3
A-B = 4A-B = 4A-B = 0004A-B = 4
(3) 輸出為浮點數類型:默認格式,限制小數位數格式,佔位符及限制小數位數格式
print("A*B = %f"%(a*b)) # output floatprint("A/B = %.2f"%(a/b)) # output float of two decimal placesprint("A/B = %05.2f"%(a/b)) # output float of two decimal places
結果:a=7,b=3
A*B = 21.000000
A/B = 2.33
3. 全部實現,開發工具為pycharm
# calculatea = int(input("Please input number A:"))b = int(input("Please input number B:"))print("A+B = %s"%(a+b)) # output stringprint("A-B = %d"%(a-b)) # output intprint("A*B = %f"%(a*b)) # output floatprint("A/B = %.2f"%(a/b)) # output float of two decimal placesprint("A%B"+" = %06d"%(a%b)) # output int of 6 bit placeholder filled with 0print("A與B和是%s,差是%d,乘積是%02.2f,商是%-4.2f,余數是%03d"%(a+b,a-b,a*b,a/b,a%b))