【问题标题】:Equation solver in python syntax errorpython语法错误中的方程求解器
【发布时间】:2016-07-24 05:33:55
【问题描述】:

我正在 python 中为家庭作业制作一个快速简单的方程求解器,我需要计算每个 eps_komp 的 sig_a 值,该值介于 0 到 700 之间。我用 2 个 for 循环完成了这个,第一个选择 eps_komp 值,第二个搜索 0 到 700 之间最接近的 sig_a 值,以使方程尽可能接近零。我用“delta”定义了允许的错误。 这与二分法中的逻辑相似。这是代码:

eps_komp = [0.00012893048999999997,
 0.018839115269999998,
 0.01230539995,
 0.022996934109999999,
 -0.0037319012899999999,
 0.023293921169999999,
 0.0036927752099999997,
 0.020621037629999998,
 0.0063656587500000002,
 0.020324050569999998]

Rm=700
sigma = np.linspace(0, Rm-0.01, Rm/0.01)
delta = 0.001
sig_a = []

for j in range(len(eps_komp)):
    eps_j = eps_komp[j]
    for i in range(len(sig)):
        eps_j - sigma[i]/Emod - (sigma[i]/RO_K)**(1/RO_n) = diff
        if diff <= delta:
            sig_a.append(sigma[i])

eps_komp 的值只是前 10 个,还有更多,但我只是举了前 10 个示例。

现在我不断收到此错误:

语法错误:无法分配给运算符

我知道这与不正确的索引有关,但我就是看不到问题......

如果有人能提供帮助,那对我来说意义重大。谢谢。

卢卡

【问题讨论】:

  • diff 分配给它需要位于等号左侧 侧的计算:diff = eps_j - sigma[i]/Emod - (sigma[i]/RO_K)**(1/RO_n)
  • 请注意,我仍然收到关于 sig 未定义的错误,因此您的代码可能存在其他问题。 (加上import numpy as np之后就是)
  • 谢谢,我只是把 diff 切换到前面就可以了 :)

标签: python python-2.7 python-3.x error-handling solver


【解决方案1】:

要将差异分配给计算,它需要位于等号的左侧:

diff = eps_j - sigma[i]/Emod - (sigma[i]/RO_K)**(1/RO_n)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多