RUVIDEO
Поделитесь видео 🙏

長方形の中で反射する波。自由端反射のpythonプログラム смотреть онлайн

📁 Обучение 👁️ 17 📅 03.12.2023

長方形の中で反射する波は、最初は近い壁での反射を繰り返すが、遠い壁で反射した波がかぶさってくると、細切れになっていく。
さて、これは自由端反射のpythonプログラムです。慣性と表面張力の単純処理を繰り返しているだけですが、波は右や左に進み、壁に当たってはね返ります。また左右からぶつかっても何事もなかったようにそれぞれの方向に進み続けます。
こうした波の性質は学校で習った通りです。
このプログラムは、面上の全ての点に対し、次の単純処理を繰り返しています。
①盛り上がった1点は、表面張力により元に戻ろうとする。
②次も表面張力により元に戻ろうとするが、前回の移動で慣性が生じており、前回と同じ量移動しようとする力も加わる。(両方加算する)
③以降、②の繰り返し。
理屈は落下するボールを描画するのと同じです。ボールも最初は引力で落ち始め、次は引力+前回移動量(引力✕1)、次は引力+前回移動量(引力✕2)と、速度は上がっていきます。
水面の場合、水面を通り越してしまうと力のかかる方向が逆になるので、結果は行ったり来たりの動きになります。
自由端反射は、左右の端を常に隣と同じ値にすることで実現しています。
(固定端反射にしたい場合、左右の端を常に0とする)

ソースリストが後半にあります。

updateが上記の単純処理です。for文で新しいzの値を計算します。ix,iyを中心とした5点の平均をとっているのが表面張力、これに前回値kを加算してz1に新しいzの値を作っていきます。上下左右の端は、隣の値をコピーします。これにより自由端反射となります。次に前回移動量kをz1-zとします。ここにあるifは、最初の波を穏やかにするために入れてあります。最後にz1をzに代入し、plot_surfaceで面を更新します。
以上。これだけです。

--- ここから ---
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

X_SU = 120
Y_SU = 40

fig = plt.figure(figsize = (12.8, 7.2))
ax = fig.add_subplot(111, projection="3d")

plt.subplots_adjust(left=0, bottom=0, right=1, top=1)

x, y = np.meshgrid(range(0,X_SU),range(0,Y_SU))
z = 0.0 * x * y

z1 = z.copy()
k = z.copy()
z[2,2] = 30.0 # 左下端

def update(i):
global z,z1,k
print(i)
z[0,:] = z[1,:]
z[-1,:] = z[-2,:]
z[:,0] = z[:,1]
z[:,-1] = z[:,-2]
for ix in range(1,X_SU-1):
for iy in range(1,Y_SU-1):
z1[iy,ix] = (np.sum(z[iy-1:iy+2,ix]) + z[iy,ix-1] + z[iy,ix+1])/5 + k[iy,ix]
if i GT 6: # GTは不等号に置き換えること (youtubeは不等号を許可していないため)
k = z1 - z
z[1:-1,1:-1] = z1[1:-1,1:-1] #.copy()
ax.clear()
pl = ax.plot_surface(x, y, z, cmap = "summer")
ax.set_zlim(-1,1)
ax.set_ylim(0,X_SU*0.8)

ani = animation.FuncAnimation(fig, update, interval=120, blit=False, save_count=720)
#ani.save("nami2d_freeend.mp4")
plt.show()
--- ここまで ---

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «長方形の中で反射する波。自由端反射のpythonプログラム» бесплатно и без регистрации, вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.