【问题标题】:How do I get multiple outputs for 2 simultaneous equations in python?如何在python中获得2个联立方程的多个输出?
【发布时间】:2021-05-29 09:42:38
【问题描述】:

我正在尝试用 2 个联立方程绘制图形,但我不需要解决它们,我只是想从替换中获得多个结果,例如当 x 为 1 或 y 为 0 时。

我的方程式是5x + 2y = 20y = 2x + 1

我找到的所有解决方案都只是为了求解方程,而不是代入值以获得多个结果。

请停止 最好使用 numpy 或 sympy 函数,我正在努力学习这些哈哈

【问题讨论】:

    标签: python numpy matplotlib sympy equation


    【解决方案1】:

    从@Michael Rovinsky 的上述答案扩展而来。既然你提到了绘制它。 我会将代码修改为以下

    import matplotlib.pyplot as plt # used for ploting
    
    def get_f1_val(x):
      return x*-2.5+10
    
    def get_f2_val(x):
      return x*2+1
    
    #select the value you want to use for x, you can use a for loop if theres no specific value needed, or if you need a lot of x vals for the graph
    x_val = [1,2,3,4,5]
    f1_y_val = []
    f2_y_val = []
    for xval in x_val:
      f1_y_val.append(get_f1_val(xval))
      f2_y_val.append(get_f2_val(xval))
    
    plt.plot(x_val, f1_y_val)
    plt.plot(x_val, f2_y_val)
    plt.show()
    

    从技术上讲,无论如何,您都必须解方程才能绘制出图表。没有“解决它”就没有办法绘制一些东西。

    【讨论】:

    • Tq 这么多,这实际上是我要找的。​​span>
    【解决方案2】:

    您在问两个不同的问题:如何绘制和如何获取值。如果您正在绘图,绘图引擎将提供值,您只需将方程放入它可以使用的形式。在这种情况下,作为单变量方程。

    >>> from sympy import var, solve, Eq, plot
    >>> var('x y')
    (x, y)
    >>> eqs = Eq(5*x + 2*y, 20), Eq(y, 2*x + 1)  # put into Eq form
    

    由于方程在 y 中是线性的,因此我们可以使用 y 的单一解(以 x 表示的表达式)作为要绘制的表达式:

    >>> plot(*[solve(i,y)[0] for i in eqs], (x,-1,1))
    

    (注意:plot_implicit 可以在两个变量中绘制单个方程,而无需求解其中一个。)

    【讨论】:

      【解决方案3】:

      5x + 2y = 20 标准化为y = -2.5x + 10

      def get_values(x):
        return [x * -2.5 + 10, x * 2 + 1]
      
      print(get_values(-1))
      print(get_values(0))
      print(get_values(1))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-02
        • 2021-01-26
        • 1970-01-01
        • 2017-05-02
        • 1970-01-01
        相关资源
        最近更新 更多