【问题标题】:How to draw a graph of two linear equations on a single graph如何在单个图形上绘制两个线性方程的图形
【发布时间】:2019-05-20 12:12:25
【问题描述】:

我已经编写了一些代码,它允许我在单个图形上查看 3 个线性方程及其交集,在 python 中使用 numpy,这是这部分的代码:

import numpy as np

import math

import matplotlib.pyplot as plt

`t = np.linspace(0, 2*math.pi, 5)`

`a = np.sin(t)`

`b = np.cos(t)`

`c = a + b`

plt.plot(t, a, 'y')

plt.plot(t, b, 'b')

plt.plot(t, c, 'r')

plt.show()

这在一个轴上显示了 3 个图表,显示了我的交叉点。 现在我有 2 个不同的线性方程,方程中有变量 xy,但是使用我上面使用的方法,python 程序将无法运行,并且看不到如何绘制 2在 python numpy 代码中将线性方程作为单轴上的图形。

这是两个方程式:

x*sin⁡(x + 0.16y) = y

(x^2)/(4)^2 + ((y+1)^2)/4 = 1

任何关于如何为这些线性方程的图形编程代码的帮助将不胜感激,谢谢。

【问题讨论】:

  • 你需要先用 x 解出 y 的这些方程。
  • 我已经做到了,但我得到的只是第一个等式,我得到 y = (),括号中是(sin^-1(y/x)/0.16,它是 x 的 y,但我可以'似乎没有得到另一个 y 项,因为它是正弦项。
  • 第二个等式很好,我可以用 x 的形式得到 y,但是第一个等式我不能自己得到 y 等于数字和 x 项:/

标签: python python-2.7 numpy newtons-method


【解决方案1】:

这是隐式函数。您可以查看here 获取相关帖子。

这几乎是您想要的:

from pylab import *
a,b,c,d = -5,5,-5,3
X=np.linspace(a,b,1000)
Y=np.linspace(c,d,1000)
x,y=np.meshgrid(X,Y)
z1 = (x**2)/4**2 + ((y+1)**2)/2**2 - 1
z2 = x*np.sin(x+.16*y)-y
imshow((abs(z1)>2e-2)&(abs(z2)>4e-2),extent=[a,b,c,d])

对于

【讨论】:

  • 非常感谢您,这对您有所帮助。我只是想了解一些事情,你为什么要输入 a,b,c,d = -5,5,-5,3?这可以是任何数字吗?因为这是轴的范围对吗?是否有不同的网格,我看到你使用过 meshgrid 还是必须是 meshgrid 才能使其工作?
  • 另外,X=np.linspace(a,b,1000) Y=np.linspace(c,d,1000),如 (a,b,1000) 位是什么意思?
  • 当然 a,b,c,d 是边界框坐标。查看非常完整的 scipy 文档中的 numpy linspace 文档和 meshgrid 文档以了解此功能。
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多