回答 受付中

python3 数値計算の可視化

  • 困ってます
  • 質問No.9565656
  • 閲覧数50
  • ありがとう数0
  • 気になる数0
  • 回答数0

お礼率 0% (0/0)

一つだけどうしても気になることがあるので質問します。

1次元のセルオートマトンのモデルとして、30個のセルが横に並んでいる状態を考えて、セルが0から1の値を持っているとします。そして、nステップ目の左からi番目のセルの値をA[n][i][1]として表しています。右の1は列を表します。

この時、(n+1)ステップ目の左からi番目のセルの持つ値をA[n+1][i][1]=2×A[n][i][1]×(1-A[n][i][1])+A[n][i+1][1]×(1-A[n][i+1][1])+A[n][i-1][1]×(1-A[n][i-1][1])と計算します。

その値によって色が変わるようにしたいのですが、区間によって色が変わるケース(例えば0以上0.2未満ならば白、0.2以上0.4未満ならば黄色、・・・)ならばコードを記述できるのですが、値によって徐々に色が変わるように、例えばカラーマップなどを用いてグラデーションを値が0の時はセルの色は白で、1に近づくにつれてセルの色は黒くなり、1でセルの色が黒になるような感じで、1ステップごとに動くアニメーションを作りたいです。

ただサイトなどを参考にして、matplotlibのcmapを使えば作れそうということまでは分かりましたが、cmap自体使ったことがほとんどなく、具体的にどう書けばよいかが分かりませんでした。どのように記述すればよいのでしょうか?

以下が途中まで、セルの値を定義するところまで書いたコードです。$は空白の代用です。

import numpy as np
import time
import random
import math

def array2(N1,N2):
$$return [[0 for j in range(N2)]for k in range(N1)]
def array3(N1,N2,N3):
$$return [array2(N2,N3)for k in range(N1)]

def initdt():
$$A=array3(1001,31,2)
$$A[0][15][1]=0.80
$$return A

def execCell(A,i1):
$$i2 = 1 + i1
$$for i in range(1,30):
$$$$A[i2][i][1] = 2 * A[i1][i][1] * (1 - A[i1][i][1]) + A[i1][i-1][1] * (1 - A[i1][i-1][1]) + A[i1][i+1][1] * (1 - A[i1][i+1][1])
現在回答を募集しています。
感謝経済
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ