Python數值分析實驗 近似與求根

2021-10-04 13:40:18 字數 1944 閱讀 3581

print("第一種方法 第二種方法")

# 二分法

"""

x0 初始值, sigma 容許誤差 n 迭代上限

"""x0 = 1.5

sigma = math.pow(10, -6)

n = 1000

def binary_split(x0, sigma, n):

# (a, b)為求根區間上下界 count為迭代次數計數器

a = math.floor(x0)

b = math.ceil(x0)

count = 0

while (abs(b-a) > sigma and count < n):

mid = (a+b)/2

f1 , f2 , f3 = function(a) , function(mid) , function(b)

if f1*f3 < 0 and f1*f2 < 0:

b = mid

count+= 1

else:

a = mid

count+= 1

if count < n:

return (a+b)/2

else:

print("none")

return 0

# 牛頓迭代法 使用單點弦法

def newton(x0, sigma, n):

def func_diff(x1, x0):

return (x1-x0)/(function(x1)-function(x0))

# 迭代計數器 count

count = 0

x1 = math.ceil(x0)

while abs(x1-x0) > sigma and count < n:

x1 = x1 - func_diff(x0, x1)*(x1-x0)

count += 1

if count < n:

return x1

else:

print("none !")

return 0

數值分析實驗 二 之數值積分與微分

1 用復化梯形公式的自動控制誤差演算法求積分。2 romberg積分演算法求積分。復化梯形公式 sy2 1.m檔案 myint 0,1,100 fun1.m檔案 function f fun1 x if x 0 x 1 f 1 else f sin x x endmyint,m檔案 function...

數值分析實驗二 數值積分

1 2 include include using namespace std double f double x return pow x,2 int main double a,b,e int n cin a b e cin n double h b a n double x 1000 x 0 ...

數值分析實驗相關

綜合說明 在寫這次實驗的時候,程式的圖形方式選用的是sdl圖形庫,關於sdl圖形庫的使用,可以網上查詢相關資料,對於一般的2d圖形顯示還是很簡單好上手的。這些實驗的 我都發在了github 也遇到一些問題,我也分享一下解決辦法 1.配置完的sdl專案顯示控制台 需要在專案屬性 配置屬性 鏈結器 系統...