Python Matplotlib:绘制线性不等式函数
发布时间:2020-12-16 23:08:29 所属栏目:Python 来源:网络整理
导读:如何使用matplotlib绘制由一些线性不等式函数限定的区域. 例如,如果我们有3个函数: y = -2 4x,y = 2 0.5x,y = 7-0.3x 我想像wolfram alpha那样绘制一些类似的东西:http://www3.wolframalpha.com/Calculate/MSP/MSP43251aca1dfd6ebcd862000067b9fd36a79h3ig
如何使用matplotlib绘制由一些线性不等式函数限定的区域.
例如,如果我们有3个函数: 解决方法
我写了一个非常简单的例子,仅对你的问题有效,但很容易扩展和概括它.唯一的技巧是使用simpy来简化查找根以构建所需多边形的问题. (摘自
http://docs.sympy.org/dev/modules/solvers/solvers.html)
import numpy as np import matplotlib.pyplot as plt from sympy.solvers import solve from sympy import Symbol def f1(x): return 4.0*x-2.0 def f2(x): return 0.5*x+2.0 def f3(x): return -0.3*x+7.0 x = Symbol('x') x1,= solve(f1(x)-f2(x)) x2,= solve(f1(x)-f3(x)) x3,= solve(f2(x)-f3(x)) y1 = f1(x1) y2 = f1(x2) y3 = f2(x3) plt.plot(x1,f1(x1),'go',markersize=10) plt.plot(x2,f1(x2),markersize=10) plt.plot(x3,f2(x3),markersize=10) plt.fill([x1,x2,x3,x1],[y1,y2,y3,y1],'red',alpha=0.5) xr = np.linspace(0.5,7.5,100) y1r = f1(xr) y2r = f2(xr) y3r = f3(xr) plt.plot(xr,y1r,'k--') plt.plot(xr,y2r,y3r,'k--') plt.xlim(0.5,7) plt.ylim(2,8) plt.show() 问候 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |