概述
#coding:utf-8
'''
isection法求解方程的根
'''
from matplotlib import pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
import numpy as np
f = lambda x : np.exp(x) - 2
tol = 0.1
a,b = -2,2
x = np.linspace(-2.1,2.1,1000)
fig,ax = plt.subplots(1,1,figsize = (12,4))
ax.plot(x,f(x),lw = 1.5)
ax.axhline(0,ls=':',color='k')
ax.set_xticks([-2,-1,0,1,2])
ax.set_xlabel(r'$x$',fontsize=18)
ax.set_ylabel(r'$f(x)$',fontsize=18)
fa,fb = f(a),f(b)
ax.plot(a,fa,'ko')
ax.plot(b,fb,'ko')
ax.text(a,fa+0.5,r'$a$',ha='center',fontsize=18)
ax.text(b,fb+0.5,r'$b$',ha='center',fontsize=18)
n = 1
while b - a > tol:
m = a + (b - a) / 2
fm = f(m)
ax.plot(m,fm,'ko')
ax.text(m,fm - 0.5,r'$m_%d$' %n,ha = 'center')
n += 1
if np.sign(fa) == np.sign(fm):
a,fa = m,fm
else:
b,fb = m,fm
ax.plot(m,fm,'r*',markersize=10)
ax.annotate("Root approximately at %.3f" % m,
fontsize=14,family='serif',
xy = (a,fm),xycoords='data',
xytext=(-150,+50),textcoords='offset points',
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=-0.5'))
ax.set_title('Bisection method')
plt.show()
最后
以上就是务实天空为你收集整理的Python实例:Bisection法求解单变量方程的根的全部内容,希望文章能够帮你解决Python实例:Bisection法求解单变量方程的根所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复