前提・実現したいこと
NumPyとMatplotlibを用いてブラッグの法則 (nλ = 2dsinθ) の整数nを変化させたときの角度θの値を計算・描画しています。
アークサインの定義域1を超えない範囲、つまり関数f(n) = np.arcsin(nl1/a*1/2)が1を超えないように制御したいのですが、上手くコードを書くことできません。
大変申し訳ないのですが、丁寧に教えていただけると助かります。
該当のソースコード
Python
import numpy as np import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') #パラメータ値の設定 l = 0.3 a = 5.4 n = np.arange(101) #nの値を変化させたときのアークサインの計算 def f(n): return np.arcsin(n*l*1/a*1/2) #ラジアンを角度に変換 deg = np.rad2deg(f(n)) #描画 plt.plot(n,deg)
試したこと
サイン角の定義域を超えると警告文が出るので、制御するために"import warnings
warnings.filterwarnings('ignore')" を追加しました。
for, if文を用いてnp.arcsin(nl1/a*1/2)が1を超えた場合を制御しようと試みましたが、outside loopになってしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/27 09:17
2018/07/27 09:22
2018/07/27 10:39
2018/07/27 12:25
2018/07/27 22:31
2018/07/28 03:34