倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

計算物理学入門

2.10 原子核の崩壊 : 問題 2.8 原子核の崩壊 a

前回までは単一核種の系を扱ってましたが、今回からは複数の核種の系、すなわちある核種が放射性崩壊してできた核種がさらに放射性崩壊するような系を見ていきます。放射性崩壊する2核種の系最初の種類の原子核の個数を 、崩壊によってできる放射性原子核の…

2.10 原子核の崩壊 : 問題 2.7 単一核種の崩壊 d

今回はオイラー法よりも精度の高い計算法を用いたシミュレーション。 問題 a. プログラム cool を修正し、原子核崩壊で使われる表記に直せ。 そして、 について、 と のときの の解析解の値とオイラー法の差を計算せよ。 さらに、それぞれの の値では、その…

2.10 原子核の崩壊 : 問題 2.7 単一核種の崩壊 c

今回も放射性崩壊のシミュレーションの続き。 前回の最後に、238U の半減期や崩壊定数が桁の極端な値になるねって話がありました。 今回はそれを上手く扱うやり方を見ていきます。問題 a. プログラム cool を修正し、原子核崩壊で使われる表記に直せ。 そし…

2.10 原子核の崩壊 : 問題 2.7 単一核種の崩壊 b

今回は問題 2.7 の続き。 放射性原子核を扱う場合、崩壊定数 よりも半減期 の方がよく使われるので、こちらを元にしたコードに書き換える問題です。問題 a. プログラム cool を修正し、原子核崩壊で使われる表記に直せ。 そして、 について、 と のときの の…

2.10 原子核の崩壊 : 問題 2.7 単一核種の崩壊 a

今回は放射性崩壊をする原子核のシミュレーション。 単一核種の場合は、ニュートンの冷却の法則にしたがう系や RC 回路と同じ形の微分方程式になるので、今までのシミュレーションと同じように行うことができます。 単一核種での放射性崩壊の法則はこちらを…

2.9 視覚化 : 問題 2.6 リサージュ図形 lissajous

またまた関数をプロットするサンプル。 今回はちょっとパラメータを変えるといろいろな図形になるリサージュ図形です。問題 座標が で与えられる曲線が出発点に戻って繰り返し描かれるとき、そのような曲線をリサージュ (Lissajous) 図形という。 角振動数 …

2.9 視覚化 : 問題 2.5 2次元の写像 simpleMap

今回は前回に引き続き、プロットの練習です。問題 プログラム simpleMap を使い、初期条件 \( x_0 = -0.1,\,y_0 = 0 \) から出発し、連立差分方程式 \begin{align*} x_{n+1} &= 1-y_n+\left|x_n\right| \\ y_{n+1} &= x_n \end{align*} を繰り返し計算せよ。…

2.9 視覚化 wheel

今回から何回かははシミュレーション結果をプロットする練習です。 今回は剛体の車輪が水平な地面を滑ることなく転がる場合の、車輪上の点の運動をプロットします。以降の記事では、得に断らない限り、水平方向に \( x \) 軸、鉛直方向に \( y \) 軸(上向き…

2.8 簡単なグラフ表示 : 問題 2.4 冷却時間

今回はグラフ表示と緩和時間の計算です。 グラフ表示は今まで既に行っていますが、まぁ一応やっておきます。 緩和時間は放射性崩壊などの半減期と似た量です。問題 a. プログラム cool を修正して、コーヒーの温度についての数値解を、数値として表示するの…

2.7 計算の精度と安定性 : 問題 2.3 オイラー法の計算精度と安定性 d, e

今回は、前回に続き計算精度の問題をやっていきます。 対象とする物理系はガラッと変わって RC 回路になります。 といっても、この系が従う法則もニュートンの冷却の法則と同じ形の微分方程式なので、結局やってることは変わりません。問題 d. 微分方程式 を…

2.7 計算の精度と安定性 : 問題 2.3 オイラー法の計算精度と安定性 a, b, c

今回は計算精度をマジメに考えようって回です。 対象とする物理系はニュートンの冷却の法則にしたがう系です。 この物理系については以前の記事参照。 今回は問題2.3のうち、a, b, c をやっていきます。 d, e は次回に。問題 a. ニュートンの冷却の法則の解…

2.6 コーヒーの冷却の問題 : プログラミング演習 2.3 数のリストの取り扱い

今回はプログラミング演習2.3『数のリストの取り扱い』(記事一覧)。 Groovy のプログラミング演習デス。問題 a. xmax の値を x と xmax の大きい方の値で置き換えるサブルーチンを書け。 b. 最小値も計算するようなサブルーチンを書け。 キーボードからい…

2.6 コーヒーの冷却の問題 : 問題 2.2 より速く冷ますのにミルクを加えるのは先か、それとも後か

今回は問題2.2『より速く冷ますのにミルクを加えるのは先か、それとも後か』です。 現実に役に立つ結果が得られるでしょうかね?。問題 コーヒーの温度ははじめ90℃だが、コーヒーをおいしく飲むことのできる温度は75℃以下だとしよう。 ミルクを加えるとコーヒ…

2.6 コーヒーの冷却の問題 : 問題 2.1 コーヒーの冷却問題のためのプログラム

今回は、前回の「ニュートンの冷却の法則」に従う系のシミュレーションに関する補足問題です。問題 a. 電卓を使ってオイラー法でニュートンの冷却の法則の数値解を計算せよ。 b. 実験データに合う r の近似値を探せ。 c. 設問 b で見つけた r の値を使って、…

2.6 コーヒーの冷却の問題 : 問題 2.1 コーヒーの冷却問題のためのプログラム(続き)

今回は『問題 2.1』の続きいきますよ?。問題(再掲) a. 電卓を使ってオイラー法でニュートンの冷却の法則の数値解を計算せよ。 b. 実験データに合う r の近似値を探せ。 c. 設問 b で見つけた r の値を使って、温度の時間変化をグラフに示せ。 d. シミュレ…

2.6 コーヒーの冷却の問題 cool

今回はニュートンの冷却の法則に従う系のシミュレーション。 やっと物理っぽい系が出てきたよ?。ニュートンの冷却の法則ニュートンの冷却の法則とは「周囲と温度が高い物体は、周囲との温度差に比例して冷却していく」という法則です。 『計算物理学入門』で…

2.5 オイラー法のプログラム example

さて、プログラミング演習がソコソコこなせてきたので、だんだん物理シミュレーションの方に入っていきましょう。 微分方程式に従う物理系のシミュレーションを行うオイラー法は以前の記事で説明しました。 今回はそのオイラー法を簡単な微分方程式に適用し…

2.4 True Basic のプログラム : プログラミング演習 2.2 値の交換

今回は『プログラミング演習 2.2 値の交換』です。 演習問題はこちら: 2つの値を x と y に入力し、それらの値を交換するサブルーチンを書け。 GroovyGroovy だとこんな感じでしょうかね: def x = 5, y = 10 (x, y) = exchange(x, y) assert x == 10 && y …

2.4 True Basic のプログラム : プログラミング演習 2.1 関数値の計算 b

今回は『プログラミング演習 2.1 関数値の計算 b』です。 演習問題はこちら: プログラムを修正して、区間 について、関数 の各値を計算して画面の同じ行に表示せよ。 Groovyまずは Groovy による実装。 関数をクロージャで表しているのは今までと同じです。…

2.4 True Basic のプログラム : プログラミング演習 2.1 関数値の計算 a

今回は『プログラミング演習 2.1 関数値の計算 a』です。 演習問題はこちら: 関数 の値を画面に表示するプログラムを書け。 はパラメータである。 Groovy による実装まずは Groovy による実装。 Groovy のプログラミング演習です。 def params = initial() …

2.4 True BASIC のプログラム tasks

今回はプログラムのモジュール化です。 『計算物理学入門』で扱われている True BASIC のモジュール化機能はサブルーチンと関数ですが、Groovy で対応するのは Java と同じくメソッドです。True BASICまずは True BASIC のコード。 PROGRAM tasks ! サブルー…

2.4 True Basic のプログラム seriesTest

今回は while 文による繰り返しを見ていきます。 シミュレーション的には、状態更新の前後で物理量の変化が設定値以下になるまで反復を繰り返すといったときに使えます。True BASICまずは True BASIC のコード。 PROGRAM series_test ! DO LOOP 文の使用例 L…

2.4 True BASIC のプログラム series (Groops)

さて、最近は Groovy の使い方の解説ばかりだったので、少しは Groops を使ったサンプルも書いておきましょう。 ってことで、今回は前回に見たプログラム「series」を Groops で書いてみます。物理系をクラスで書いたサンプルまずは今までの記事で書いたこと…

2.4 True BASIC のプログラム series

今回は反復シミュレーションに大切な繰り返し処理。 Groops ではシミュレーションの繰り返し処理は型にはめて設定するようにしますが、Groovy でどのように繰り返しを行うかも知っておく方がよいでしょう。True BASICまずは True BASIC でのコード: PROGRAM…

2.4 True BASIC のプログラム product

このシリーズでは『計算物理学入門』に載っているシミュレーションを Groops で書いていこう!ってのが目的でしたが、Groops で前提としているプログラミング言語の Groovy ってどの程度知られているのか分からないので、『計算物理学入門』で True BASIC に…

2.4 True BASIC のプログラム product2

今回はコマンドラインから入力を受け付けられるようにするプログラムを見ていきます。 Groops では今のところコマンドラインからの入力を受け付けるような機構をサポートする予定はありませんが、Groovy (と Java)の API を使えば実装するのは難しくありま…

2.2 オイラーのアルゴリズム

ニュートン力学以来、物理法則の多くは微分方程式の形で記述されてきました。 したがって、多くの場合の物理シミュレーションが「微分方程式に従って物理系の状態を遷移させていき、各ステップで物理量を計算して出力する」というのものになっています*1。 …

コトハジメ

さて、Groovy で物理シミュレーションを行うフレームワーク Groops を作り始めたはいいが、やっぱり実際に動かさないとね・・・ってことで、「倭マン日記」でちょこっと書いてた『計算物理学入門』解読をこちらでやることに。 当面は内容がダブりますが、と…