我是靠谱客的博主 务实天空,这篇文章主要介绍Python实例:Bisection法求解单变量方程的根,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#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法求解单变量方程内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部