Her eps_komp için 0 ile 700 arasında olan sig_a değerini hesapladığım bir ev saldırısı için python'da hızlı ve basit bir denklem çözücü yapıyorum. Bunu, denklemin mümkün olduğunca sıfıra yakın olması için, döngüler için 2, eps_komp değerini ilk seçen ve ikincinin sig_a en yakın değerini 0 ile 700 arasında aramak için ikincisi yaptım. İzin verilen hatayı "delta" ile tanımladım. Bu, bilişim yönteminde olduğu gibi benzer bir mantıktır. Bu kodu verilmiştir:Python sözdizimi hatası denklemi çözücü
eps_komp = [0.00012893048999999997,
0.018839115269999998,
0.,
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 değerleri sadece ilk 10 vardır, orada sayılarının daha fazla olması ama sadece bir örnek için ilk 10 verdim.
SyntaxError:
Şimdi bu hatayı almaya devam ben yanlış bir endeks ile ilgili bir şey olduğunu biliyorum ama sadece sorunu göremiyorum operatörü
atayamayacağı. ...
Herhangi biri yardımcı olabilirse, benim için çok şey ifade eder. Teşekkürler.
Luka
'atamak için bu _left_ tarafında olması gerekmektedir hesaplamaya diff' eşittir işareti: 'diff = eps_j - sigma [i]/Emod - (sigma [i]/RO_K) ** (1/RO_n)' –
hala orada "sig" diye tanımlı olmamakla ilgili bir hata görüyorum. kodunuzla ilgili başka sorunlar olabilir. ('np' olarak ithalat numpy ekledikten sonra) –
teşekkür ederim, ben sadece diff'yi öne geçiriyorum ve işe yarıyor :) – mcluka