如何在python中求解具有两个变量的方程

如何在python中求解具有两个变量的方程,python,variables,numpy,equation-solving,Python,Variables,Numpy,Equation Solving,所以,我想用两个变量(例如,x和y各有50个值)解一个方程z。我想计算如下: import numpy as np x = np.linspace(0, 50, 51) y = np.linspace(100, 150, 51) z=y-x print z with open("output_data.csv","w") as out_file: for i in range(len(x)): #print i out_string=""

所以,我想用两个变量(例如,x和y各有50个值)解一个方程z。我想计算如下:

import numpy as np
x = np.linspace(0, 50, 51)
y = np.linspace(100, 150, 51)

z=y-x

print z

with open("output_data.csv","w") as out_file:
    for i in range(len(x)):
        #print i
        out_string=""
        out_string+=str(x[i])
        #out_string+=str(real(ky2)[i])
        #print out_string
        out_string += "," + str(z[i])
        out_string += "\n"
        out_file.write(out_string) 
但是我想用所有的y来计算第一个x,用所有的y来计算第二个x;再次是y,以此类推,直到我得到一组50个z值,每组50个。然后保存在一个50列的文件中

我的代码所做的是,fat只计算第1个x和第1个y,第2个x和第2个y的50 z,以此类推


有什么想法吗?

您需要更改代码,以便在
for
循环中计算
z

for i in range(len(x)):
    words = []
    z = y-x[i]
    words.append(str(x[i]))
    words.append(", ".join((str(_z) for _z in z)))
    outfile.write(": ".join(words))
    outfile.write("\n")
使用您的代码,您只计算一次
z
(在循环之外),这会产生
y
x
的逐项差异,如您所见

说到这里,您应该将代码更改为notdo
str+=…
。如果要累积字符串,请使用列表:

words = []
words.append(str(x[i]) ...

我做了第一部分,它确实很好,但是用单词替换str并没有真正起作用。这一部分你能说得更清楚一点吗?我添加了一个更新,说明了列表
单词的用法。基本上,您是在为每个调用out\u字符串的
+
创建一个新字符串。将组件存储在
列表中
(words)是一种常见的python习惯用法,用于更高效地生成更长的字符串。它只给出了一个错误:words=[]^IndentationError:应为缩进块看起来复制/粘贴对
words
不起作用。它需要在循环声明的
下方正确缩进。