サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
www.asahi-net.or.jp/~uc3k-ymd
| 目次 | 1ページ | 2ページ | 3ページ | 4ページ | 5ページ | 2つのボールの衝突 1999/02/25 (初版) 以下では、平面内のベクトルを習慣に従ってアルファベットの太字で表すことにしま す。また普通のアルファベット文字はその大きさを表すものとします。 2つのボールの完全弾性衝突の物理的性質は、次のように要約できます。 2つのボールには、他からの力は働かないので運動量の和は変化しません。また、完全 弾性衝突では、衝突の前後で2つのボールのエネルギーの和は一定です。 さて、この2つの式を別の視点から眺めることにします。空間に固定した座標系では なく2つのボールの重心と共に動く座標系(重心系)でこの衝突を眺めることにします。 重心系とは、重心の位置がいつも原点となるように時間と共に動く座標系です。重心の 速度は、2つのボールの運動量の和を質量の和で割ったものとして表さ
[補足] new演算子例外の実験 (1999/04/13 初版) 1. メモリ領域はどれくらいまで確保できるか 以下では非常に大きな配列を動的に作成して、new演算子が例外を発生する実験を行 います。 実験はWindows 95 パソコンで、Borland C++ Builder 3 のコマンドライン・コンパ イラ bcc32.exe を使います。普通、動的メモリ領域は実メモリ(RAM)に作成され ますが、要求された領域が足りないとき Windows 95 ではハードディスクのスワップ・ ファイルを仮想メモリとして利用します。つまり可能なメモリ領域の大きさは、実メモ リとハードディスクの空き領域の大きさで決まります。 以下の例では、約500Mバイトまでの配列領域を作成することができます。このと きハードディスクの空き領域はスワップファイルで埋め尽くされます。そしてハードデ ィスク内にそれ以
行列の表示(1) 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 行列の表示(2) 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 2.5.2 2次元配列を指すポインタ(配列へのポインタ) この2次元配列を指すポインタはどのような形になるでしょうか。このテーマはポイン タの学習で、もっとも難しくて悩ましい部類に入ります。でもそれを理解するための準備 は整っています。ここで何をやりたいのかを明確にしておきましょう。あるポインタ ptr が2次元配列を指しているときに、これを2次元配列とまったく同じように使いたい。配 列の要素をptr[i][j]という風に使うためには、ptrをどのように定義すればよいのかとい うことです。 いくつかの方法があります。そ
掃き出し法を使った逆行列の計算 逆行列を求めるには、行列の右に単位行列を並べたものに対して、左側の行列の 掃き出し計算(単位行列化)を行います。 | 1 2 1 | 1 0 0 | | 2 1 0 | 0 1 0 | | 1 1 2 | 0 0 1 | 以下各ステップで行番号を、上から順に(1),(2),(3)と繰り返し使います。 [ステップ1] 1行1列目の係数を1にして、1列の他の係数を0に式変形する。 | 1 2 1 | 1 0 0 | (2)行 - (1)行×(+2): | 0 -3 -2 | -2 1 0 | ........(A) (2)行 - (1)行×(+1): | 0 -1 1 | -1 0 1 | [ステップ2] 2行2列目の係数を1にして、2列の他の係数を0に式変形する。 | 1 2 1 | 1 0 0 | (2)行÷(-3): | 0 1 2/3 | 2/3 -1/
#3 マンデルブロー集合 2000.11.23(初版) 目次へ 1ページ 2ページ マンデルブロー集合とは、次のような複素数についての漸化式(点列) が、n → ∞ で発散しない(このことを有界といいます)ような、パラメータλの集合 です。λは複素数ですので、これを次のように表す(iは虚数単位)と この集合は、横軸をa(実数軸)、縦軸をb(虚数軸)にとった平面内の図形としてあ らわされます。次の図の黒い部分がそうです。 この図形は実軸(a軸)について対象(上下対象)です。つまり、a軸は左側のへこん だ部分と右側の針の部分を結んだ線です。 この奇妙な球根を詳しく見るまえに、複素点列について意味を検討しましょう。点列 の初めの方は となります。各zは複素数なので、 と表すことにします。 λが実数の場合(つまり b = 0)は、zの値はすべて実数値(つまり y = 0)とな ります。これを横軸を
ガウス・ジョルダン法による掃き出し計算 x - 2y - 2z + 2w = 5 ..... (1) 2x - 2y - 3z + 3w = 10 ..... (2) -x + 6y + 3z - 2w = 2 ..... (3) x + 4y - w = -10 ..... (4) 以下各ステップで式番号を、上から順に(1),(2),(3),(4)と繰り返し使う。 [ステップ1] (1)式のxの係数を1にして、残りの式のxの係数を0に式変形する。 (2)式の変形:(2)式 - (1)式×(+2) (3)式の変形:(3)式 - (1)式×(-1) (4)式の変形:(4)式 - (1)式×(+1) x - 2y - 2z + 2w = 5 ..... (1) 2y + z - w = 0 ..... (2) 4y + z = 7 ..... (3) 6y + 2z - 3w = -15 ..
準備 コマンドライン・コンパイラの使い方 (1998/11/07初版) 1999/04/17改訂 ここではWindows 95/98 ベースのコンパイラとしてBorland C++(ver 5.x) および Microsoft Visual C++ (ver 4.0以上)を例に、コンソール(MS-DOSプロンプト)で のコマンドライン・コンパイラの使い方を説明します。また UNIX ベースのコンパイラ として Free Software Foundation のGNU C/C++ コンパイラ(gcc, g++)についても 簡単に触れます。 Borland C++(ver 5.x)のコマンドライン・コンパイラは、BCC32.EXE(Borland C++ Builderにも付属しています)で、 Visual C++は CL.EXE です。 1. Borland C++(ver 5.x)の場合
Yamada,K since 1998/07/19 ようこそ、いらっしゃいまし。今のところこれだけです。 (2009年6月21日 更新) [What's new] ページの手直し('09年6月21日) ◇ コンピュータ科学の入門 ◇ 1. 数値計算以前 (update 2000/03/22) ◇ プログラミングのスケッチブック ◇ プログラミングの例題 (update 2004/01/02) ◇ フリーソフトウェア◇
Win32用 基本グラフィックス・クラスライブラリ GLIBW32 ver1.36 Graphics Library for Win32 2004/11/23更新 Copyright(C)1998-2005 Yamada, K Visual C++ ver.6 でVisual C++ Toolkit 2003 を使う 解説を追加(2004.11.22)。 サンプル・プログラムを2つ変更。 詳しくは、下記をご覧ください(2004.11.19)。 GLIBW32 のバージョンが ver 1.36 になりました。 詳しくは、下記をご覧ください(2003.12.10 版)。 【概要】 Windows95/98/2000上でのコンソール・プログラミングで利用できる、C/C++ 言語用のグラフィックス・クラスライブラリです。 このライブラリーでは、標準入出力はコンソールに割り当てられ、グラフィ ックス
2.8 動的配列 (1999/04/10 初版) 2.8.1 汎用的な関数 前のページで見たように、2次元配列を関数でやり取りするには、少なくとも配列 の後ろの添字サイズを指定する必要があります。例えば2次元配列 int mat[10][20]; を関数に渡すには、次のようなプロトタイプ void func(int (*a)[20], int row, int col); で宣言される関数が定義されている必要があります。関数は大きさが20の配列を指 すポインタaで受け取ります。 しかし、これでは関数に汎用性がありません。違うサイズの配列をこの関数に渡す ことができないからです。ここでは任意のサイズの2次元配列を扱える汎用的な関数 をつくります。 2.8.2 準備:ポインタを指すポインタ まず準備として、これまでの知識を使った演習問題を考えましょう。上述の関数 func()で「int (*)
このページでは、プログラミングのテクニックというよりもむしろ、プログラミ ングの対象そのものについての観察が主題です。 [目次] #1.ボールの衝突運動のシミュレーション 幾つかのボールが完全弾性衝突を繰り返しながら運動するシミュレーション・ プログラムを考えます。 下の絵は、ここで取り上げるプログラムのバリエーションの1つです。上の部 分は、ボールの衝突現象の様子をシミュレートしたもので、下の部分に個々のボ ールのエネルギーの時間変化をプロットしています。 衝突時のボールの速度、質量や衝突角度によって、相手にエネルギーを与えた り、もらったりする様子が観察できます。単純な現象ですが意外に楽しめます。 #2.ライフゲーム Conwayのライフゲームです。単純なルールから複雑なパターンをつくりだす様 子を描くゲームとして知られています。下の絵はある種(タネ)から世代変化し てゆく生命体の様子
数値計算以前 ( How-to programming ) このページは、プログラミングや数値計算の方法についてあまり急がずに学ぼうとする 人のための解説です。読者としては、初歩的なC/C++言語の経験を仮定しています。プ ログラムの書き方や、入出力の仕方 ( Hello World! ) と基本的な制御構造 ( for文、 while文やif-else文など) の知識があることを前提にかかれています。必要に応じて言 語の解説は行っていますが、それは言語仕様全般にわたる系統的で網羅的な解説ではあり ません。 ここで示すプログラムは、C言語またはC++言語で書かれています。C言語のものは、 拡張子を .c とし、C++で書かれたものは .cpp の拡張子をつけています。 [目次] #1 変数を覗いてみよう はじめに 変数とは [準備] コンパイラの使い方と環境設定 [注意] GNU gc
3.13 誤差 (1999.11.27 初版) 3.13.1 丸め誤差 数値演算で注意を要するのは丸めの誤差(round-off error)です。これは、数値が すべて有限の桁数の範囲内で扱われるために、有効桁の最下位より1つ下の桁で四捨五 入(つまり2進数で0捨1入)されることによるために起こる計算誤差です。丸め誤差 でとくに注意が必要なのは、浮動小数点数の加算と減算です。 大きな数と小さな数の加算では、小さい方の数値が結果に反映されれないという情報 落ちという現象が生じます。この様な誤差を積み残しといいます。また、同じ程度の 大きさ同士の引き算で、有効桁数が減少する桁落ちという現象が起こります。 以下では、この様な丸め誤差による計算誤差について考察します。 3.13.2 「0.6 - 0.4」 は 「0.2」 ではない !? 2つの正方行列の積(および順序を交換した積)が単位行列に
このページを最初にブックマークしてみませんか?
『www.asahi-net.or.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く