質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

559閲覧

TypeError: can't multiply sequence by non-int of type 'float'

tamanegi.gogo

総合スコア16

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/11 04:56

前提・実現したいこと

diagPFの対角要素の構成要素

DLDD = [0]*(ndtl+1) DLDE = [0]*(ndtl+1) DLEE = [0]*(ndtl+1) DLD = [0]*(ndtl+1) DLE = [0]*(ndtl+1) dpl4 = [[0 for i in range(1)] for j in range(lintl*20+1)] #lintl print(dpl4) ### dpls4 = [[0 for i in range(1)] for j in range(lintl*6+1)] ### ### ☝   ### ### 増やすと配列増やせる ### for i in range(1,ndtl+1): for l in range(1,lintl+1): ii = ni[l] jj = nj[l] if ii>jj: jjtmp = jj jj = ii ii = jjtmp j = jj ### iとつながっているjで(i<j)のみ計算 ### if i == ii: di = d[i] ei = e[i] rpi = rp[i] rqi = rq[i] dj = d[j] ej = e[j] rpj = rp[j] rqj = rq[j] dij = di-dj eij = ei*ej Gij = yline[l].real Bij = yline[l].imag Gcos = Gij*math.cos(dij) Gsin = Gij*math.sin(dij) Bcos = Bij*math.cos(dij) Bsin = Bij*math.sin(dij) Pij = eij*( Gcos + Bsin) Pji = eij*( Gcos - Bsin) Qij = eij*( Gsin - Bcos) Qji = eij*(-Gsin - Bcos) ### 有効母線潮流と無効母線潮流の計算 ### p[i] = p[i] + Pij p[j] = p[j] + Pji q[i] = q[i] + Qij q[j] = q[j] + Qji ZPL = rz[nplst+l] WPL = rw[nplst+l] LPL = sl[nplst+l] UPL = su[nplst+l] PL = pl[l] PL_MAX = gu[nplst+l] PL_MIN = gl[nplst+l] ZWPL = ZPL + WPL SPL = WPL/UPL-ZPL/LPL SSPL = [WPL/UPL*(PL + UPL -PL_MAX) -ZPL/LPL*(PL -LPL - PL_MIN) -per*(1/UPL-1/LPL)] ### 有効線路潮流の1次微分と2次微分の値 ### ### i対i ### PLDiDi = -Pij PLDiEi = -Qij/ei PLEiEi = -2*Gij ### i対j ### PLDiDj = Pij PLDiEj = -Qij/ej PLEiDj = Qij/ei PLEiEj = Pij/eij ### j対j ### PLDjDj = -Pij PLDjEj = Qij/ej PLEjEj = 0 ### i ### PLDi = -Qij PLEi = Pij/ei - 2*Gij*ei ### j ### PLDj = Qij PLEj = Pij/ej ### 最大ステップ長を算出する際に必要となるため保存 ### dpl4[4*(l-1)+1][0] = PLDi dpl4[4*(l-1)+2][0] = PLEi dpl4[4*(l-1)+3][0] = PLEj dpl4[4*(l-1)+4][0] = PLEj ### diagPFの非対角成分に値を代入 ### ### 非対角のDi対Dj ### diagPF[4*(i-1)+1][4*(j-1)+1] = diagPF[4*(i-1)+1][4*(j-1)+1]\ +(rpi*Pij+rqi*Qij+rpj*Pji+rqj*Qji)\ +PLDi*SPL*PLDj+PLDiDj*ZWPL ### 非対角のDi対Ej ### diagPF[4*(i-1)+1][4*(j-1)+2] = diagPF[4*(i-1)+1][4*(j-1)+2]\ +(-rpi*Qij + rqi*Pij + rpj*Qji - rqj*Pji)/ej\ +PLDi*SPL*PLEj + PLDiEj*ZWPL ### 非対角のDi対RPj ### diagPF[4*(i-1)+1][4*(j-1)+3] = diagPF[4*(i-1)+1][4*(j-1)+3] + Qji ### 非対角のDi対RQj ### diagPF[4*(i-1)+1][4*(j-1)+4] = diagPF[4*(i-1)+1][4*(j-1)+4] - Pji ### 非対角のEi対Dj ### diagPF[4*(i-1)+2][4*(j-1)+1] = diagPF[4*(i-1)+2][4*(j-1)+1]\ +(rpi*Qij - rqi*Pij - rpj*Qji + rqj*Pji)/ei\ +PLEi*SPL*PLDj + PLEiDj*ZWPL ### 非対角のEi対Ej ### diagPF[4*(i-1)+2][4*(j-1)+2] = diagPF[4*(i-1)+2][4*(j-1)+2]\ +(rpi*Pij + rqi*Qij + rpj*Pji + rqj*Qji)/eij\ +PLEi*SPL*PLEj + PLEiEj*ZWPL ### 非対角のEi対RPj ### diagPF[4*(i-1)+2][4*(j-1)+3] = diagPF[4*(i-1)+2][4*(j-1)+3]+ Pji/ei ### 非対角のEi対RQj ### diagPF[4*(i-1)+2][4*(j-1)+4] = diagPF[4*(i-1)+2][4*(j-1)+4] + Qji/ei ### 非対角のRPi対Dj ### diagPF[4*(i-1)+3][4*(j-1)+1] = diagPF[4*(i-1)+3][4*(j-1)+1] + Qij ### 非対角のRPi対Ej ### diagPF[4*(i-1)+3][4*(j-1)+2] = diagPF[4*(i-1)+3][4*(j-1)+2] + Pij/ej ### 非対角のRPi対RPj ### diagPF[4*(i-1)+3][4*(j-1)+3] = diagPF[4*(i-1)+3][4*(j-1)+3] + 0 ### 非対角のRPi対RQj ### diagPF[4*(i-1)+3][4*(j-1)+4] = diagPF[4*(i-1)+3][4*(j-1)+4] + 0 ### 非対角のRQi対Dj ### diagPF[4*(i-1)+4][4*(j-1)+1] = diagPF[4*(i-1)+4][4*(j-1)+1] - Pij ### 非対角のRQi対Ej ### diagPF[4*(i-1)+4][4*(j-1)+2] = diagPF[4*(i-1)+4][4*(j-1)+2] + Qij/ej ### 非対角のRQi対RPj ### diagPF[4*(i-1)+4][4*(j-1)+3] = diagPF[4*(i-1)+4][4*(j-1)+3] + 0 ### 非対角のRQi対RQj ### diagPF[4*(i-1)+4][4*(j-1)+4] = diagPF[4*(i-1)+4][4*(j-1)+4] + 0 ##### diagPFの対角成分のための合算 ##### DLDD[i] = DLDD[i] + (-rpj*Pji - rqj*Qji)\ +PLDi*SPL*PLDi + ZWPL*PLDiDi DLDE[i] = DLDE[i] +( rpj*Qji - rqj*Pji)/ei\ +PLDi*SPL*PLEi + ZWPL*PLDiEi DLEE[i] = DLEE[i] + PLEi*SPL*PLEi + ZWPL*PLEiEi DLDD[j] = DLDD[j] +(-rpi*Pij - rqi*Qij)\ +PLDj*SPL*PLDj + ZWPL*PLDjDj DLDE[j] = DLDE[j] +( rpi*Qij - rqi*Pij)/ej\ +PLDj*SPL*PLEj + ZWPL*PLDjEj DLEE[j] = DLEE[j] + PLEj*SPL*PLEj + ZWPL*PLEjEj DLD[i] = DLD[i] + rpj*Qji - rqj*Pji + SSPL*PLDi DLE[i] = DLE[i] + (rpj*Pji + rqj*Qji)/ei + SSPL*PLEi DLD[j] = DLD[j] + rpi*Qij - rqi*Pij + SSPL*PLDj DLE[j] = DLE[j] + (rpi*Pij + rqi*Qij)/ej + SSPL*PLEj return

発生している問題・エラーメッセージ

File "G:\WMTX.py", line 225, in WMTX
DLD[i] = DLD[i] + (rpjQji - rqjPji) + SSPL*PLDi

TypeError: can't multiply sequence by non-int of type 'float'

エラーメッセージ
TypeError: can't multiply sequence by non-int of type 'float'

該当のソースコード

ソースコード python(3.7.0)

このエラーの直し方をしりたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/01/11 04:59

このままではコードが読めないため、質問を編集して、<code>ボタン、出てくる’’’の枠の中にコードを貼り付けてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問