数值分析 python_数值分析PYTHON代码.pdf

from math import log

from math import sin,cos

import random

#Q1

def bifection(f,a,b,error,n):

"""f stands for the function we want to approximate to, while a and b are the

left and right number of the intervalwhere the f effects in, and n means for the

time we have tried to make a approximation"""

"""bifection(f,0,1,10**-6,20)"""

FA f(a)

for i in range(n):

p a + (b-a)/2

FP f(p)

if FP 0 or (b - a)/2 < error:

return p

if FA * FP > 0:

a p

else:

b p

def iteration(f,p0,n,error):

"""iteration(f,0.5,22,10**(-6))"""

p 0

for i in range(n):

p (2.71828)**(-p0)

if abs(p - p0) < error:

return p

else:

p0 p

def fastitertion(f,p0,n,error):

"""fastitertion(f,0.5,20,10**-6)"""

p 0

q0 p0

for i in range(n):

p (2.71828)**(-p0)

q p + g(p)/(1 - g(p))*(p - q0)

if abs(q - q0) < error:

return q

else:

p0 p

q0 q

def newton(f,g,p0,n,error):

"""newton(f,0.5,3,10**-6)"""

for i in range(n):

p p0 - f(p0)/g(p0)

if abs(p - p0) < error:

return p

else:

p0 p

def secant(f,p0,p1,n,error):

"""secont(f,0.5,1,6,10**-6)"""

for i in range(n):

p p0 - f(p0)*(p1 - p0)/(f(p1) - f(p0))

if abs(p - p0) < error:

return p

else:

p0 p

def fastsecant(f,p0,p1,n,error):

"""secont(f,0.5,1,4,10**-6)"""

for i in range(n):

p p0 - f(p0)*(p1 - p0)/(f(p1) - f(p0))

if abs(p - p0) < error:

return p

else:

p1 p0

p0 p

def f(x):

return x - pow(2.71828, - x)

def g(x):

return 1 + pow(2.71828, - x)

#Q2

def q2_eqp(x):

retu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值