clear; // *** パラメータ *** a = 1; b = 1; c = a * b; lambda = 1; f = 1; // *** 位置に関する周期関数 *** function phi_x = phi_x(x) phi_x = a .* cos(2 * %pi / lambda .* x) endfunction // *** 時間に関する周期関数 *** function phi_t = phi_t(t) phi_t = b .* cos(2 * %pi * f .* t) endfunction // *** 定在波 *** function phi = standing(x, t) phi = phi_x(x) .* phi_t(t) endfunction // *** 進行波 *** function phi = traveling(x, t) phi = c * cos(2 * %pi * (1 / lambda .* x - f .* t)) endfunction // *** 位置と時間に依存する波の計算 *** X = linspace(0,1); T = linspace(0,1); [X2D, T2D] = ndgrid(X, T); // 定在波の計算 PHI_standing = standing(X2D, T2D); // 進行波の計算 PHI_travering = traveling(X2D, T2D); // *** 定在波のプロット *** scf(0); xlabel("position, x"); ylabel("time, t"); zlabel("PHI(x,t)"); mesh(X2D, T2D, PHI_standing); //surf(X2D, T2D, PHI_standing); // *** 進行波のプロット *** scf(1); xlabel("position, x"); ylabel("time, t"); zlabel("PHI(x,t)"); mesh(X2D, T2D, PHI_travering); //surf(X2D, T2D, PHI_travering);