APL/J言語

冪級数(べききゅうすう)

ネットに落ちていたKenneth Iversonの"Math for the Layman"を読んでいたら、20章ある内の第5章がPower Seriesでした。Power Seriesってなにかな、と思って調べ中です。 Iversonのテキストでは、 A polynomial whose coefficients may be expressed as a fun…

円を描く

cir=:0 & o. a=:1r100 * i:100 plot a; (cir a) ,:(- cir a) 解説:o.(オードット)という関数は、左側引数が1だと三角関数のsin、2だとcosです。 0のとき、1から右側引数の2乗を引いたもののルート(2乗根)を返します。 つまりにおける、xの値に対するyの値を…

グラフを重ねる

load 'plot' plot x; y でグラフが描ける。xは省略可。 考え方のコツとしては;(セミコロン)でボックス化された引数と考える。 yとzのグラフを重ねる場合は、 plot x; y ,: z とする。考え方としては二つ目のボックスの中に、2行データがある感じ。 従って、…

パスカルの三角形

ウィキペディアでパスカルの三角形を引くと、次のように説明されています。 二項展開における係数を三角形状に並べた物である。 この三角形の作り方は単純なルールに基づいている。 まず最上段に1を配置する。 それより下の行はその位置の右上の数と左上の数…

問題

Q.0 1 2 0 1 2 0 1 2という数列を作れ 3 | i.9 0 1 2 0 1 2 0 1 2 関数(動詞)の|(バー、たてぼう)は、左側引数で右側引数を割った余りを算出します。 Q.1 2 3 1 2 3 1 2 3という数列を作れ 1 + 3 | i.9 1 2 3 1 2 3 1 2 3 >: 3 | i.9 1 2 3 1 2 3 1 2 3 イン…

ベクトルから行列を作る

Q.ベクトルa=,.(1 2),とb=,.(3 4)を演算によって、d=2 2$1 3 2 4にできるか? えっと、ベクトルPQとRSの交点の座標、というような場合、分母に tex: (b_1 - a_1)(d_2 - c_2) - (b_2 - a_2)(d_1 - c_1)] というような式がよく出てきます。この式は規則性があ…

多項式によるサインカーブ

Kenneth Iversonを読んでいたら、次のような例題がありました。 (MATH for the LAYMAN http://www.jsoftware.com/jwiki/Books#MathfortheLayman) fc=: 1 0 _1r2 0 1r24 0 _1r720 0 1r40320 & p. fs=: 0 1 0 _1r6 0 1r120 0 _1r5040 & p. x=: 1r3*i:10 plot x…

係数(coefficient)

Q.coefficient(係数)とは何ですか? の場合の5を係数(coefficient)と呼びます。 J言語による実験。 5*4^3 320 x=:4 5*x^3 320 0 0 0 5 p. x 320 1 2 3 p. x 57 1 + (2*x) + (3*x^2) 57 Q.の他の要素の名称を教えてください。 xは変数(variable)または引数(ar…

くもん式

以前にも書いたかも知れないアイデアですが、小学生の塾でくもんしきというのがあります。 これを高等数学でもやれないか。 要するに、3 + 4= 7のような単純計算の繰り返しがあるのだったら、を解けというのの繰り返しがあってもいいのではないか。 計算はめ…

ゼロ乗はなぜ1か

APLやJ言語を作った亡きKenneth Iversonを読んでいたら、次のような表がありました。(MATH for the LAYMAN) 2 3^table i:5r1 +-+---------------------------------------+ |^| _5 _4 _3 _2 _1 0 1 2 3 4 5| +-+---------------------------------------+ |2…

ベクトルPQとRSの交点

なるほど高校数学 ベクトルの物語 というブルーバックスの比較的最初の方(53ページ)に次のような問題がありました。 問題:2点P、Qを通る直線と、別の2点R、Sを通る直線との交点を求めよ。 解答はつぎのような結果です。 がPの座標で b, c, d がそれぞれ Q, …

Network Analysis

ネットワークの流量とスループットの関係はAloha法では、下記の式になる。 tex: S = Ge^{-G}] これをJで表すと下記のようになる。 (* ^@-) 0 1 2 3 0 0.367879 0.270671 0.149361 ネットワークの流量Gが1のとき最大で37%のスループットである。 というような…

2の64乗で地球の重さになるか

地球の質量は 5.974 ×1024 kgである おコメの重さは米粒1000粒で23g 2 ^. x: (5.973 * (10 ^ 24) * 1000) % (23 % 1000) 97.7127 97.7乗しないと地球の重さにならない 64乗で地球の重さの何分の一か? ( (2 ^ 64) * (23 % 1000)) % (5.973 * (10 ^ 24) * 100…

新聞紙で月に行く

新聞を何回折りたたんだら月に行く厚さになるか という問で、42回で38万キロメートルになる と書いてあります まず検算ですが、その前に新聞の厚さとか、月までの距離が38万キロメートルでいいかとか、ミリと万キロの単位のこととかを考えます サイトを検索…

倍になる成長率(利率)

7%の成長率(利率)で10年で倍になると言います。 これを検算。 1.07 ^ 10 1.96715 ちょっと足りないですね。 そう言えば、7.2%という数字も聞いたことがある。 1.072 ^ 10 2.00423 こんどは大きすぎる。 ということは、10乗したら2.0かっきりになる数字を求め…

黄金比

ウィキペディアによると黄金比は、下記の式で算出される。 tex:\Large x = \frac{1 + \sqrt 5}{2}] またはの正の解とのこと。 これをJ言語でやってみる %: 5 2.23607 (%: 5) 2.23607 (1 + (%: 5)) % 2 1.61803 x =: (1 + (%: 5)) % 2 x 1.61803 (x ^ 2) = (x…

数列

ただ1が10個並んだ数列を考えます 10 $ 1 1 1 1 1 1 1 1 1 1 1 これに+/\(プラススラッシュ逆スラッシュ)を作用させると、あたまから順に足したものの数列が得られます。 +/\ 10 $ 1 1 2 3 4 5 6 7 8 9 10 これにさらに+/\(プラススラッシュ逆スラッシュ)を…

単位行列

単位行列、たとえば3行x3列の単位行列を作るときにどうしますか? 3 3$1 0 0 0 1 0 0 0 1 0 0 0 1 と書くのを読んだことがあります。 これは$(ドルマーク、シェイプ)の左で指定したシェイプに右側の数列が入れられていって、不足分は繰り返されるというルー…

数え上げ(続き)

9つのものを袋に分ける分け方は何通りあるか?という問題について、「数え上げ理論」本に書いてあったアルゴリズムで、友人がJAVAで書いてくれました。答えは手で数えたものと合っています。とりあえずこのままJ言語に翻訳してみようと思う(予定)。 int p(in…

数え上げ

「数え上げ理論」というブルーバックスの真ん中あたりを開いたら、9つのものを袋に分ける分け方は何通りあるか?という問題が載っていました。 本を真ん中から読むというのはよくやります。 推理小説の最初と最後だけ読むというのもたまにやります。 9つのも…

行列積

とある本で行列の積の定義があって、例としてつぎのような行列A、Bの積を行っていました。 B 0 3 1 4 2 5 A 6 8 7 9 B mp A 21 27 34 44 47 61 さて、通常J言語で3x2(3行2列)の行列を作ろうと思うと、次のようにします。 i.3 2 0 1 2 3 4 5 これが例のBと微…

ベクトルと角度

ベクトルa = (a1, a2)とベクトルb = (b1, b2)の成す角度θを求めよ。 ベクトルの内積(dot product)はa1*b1 + a2*b2である。 これをa dp b = a1*b1+a2*b2と書くものとする。 ベクトル自身の内積はベクトルの長さの二乗になる。 a dp a = a1*a1 + a2*a2 b dp b …

固有値例題

固有値を解くのが楽しいので、ネットで「固有値 例題」でヒットしたサイトの例題を解いてみます。 http://next1.msi.sk.shibaura-it.ac.jp/MULTIMEDIA/linearalg02/node14.htm ]a=:3 3$3 0 0 0 2 _5 0 1 _2 3 0 0 0 2 _5 0 1 _2 3 Naigen a _3 1 _3 1 p. 3 N…

ル・ヴェリエ、ファデーエフ法

中野先生の固有値の論文を順々に読んでいったら、ル・ヴェリエ、ファデーエフ法というのが出てきました。 これがとても優秀のようです。 とりあえず転載。 NB. Leverrier-Faddeev Algorithm char=: 3 : 0 X=.I=.=@i.n=.#y[p=.1 for_k. >:i.n do. X=.y +/ . *…

固有値問題(3)

固有値問題の実例をやってみます。 ]a=:4 4$1 3 5 7 1r3 1 1 5 1r5 1 1 3 1r7 1r5 1r3 1 1 3 5 7 1r3 1 1 5 1r5 1 1 3 1r7 1r5 1r3 1 この4x4の行列はExcelで学ぶAHP入門という本の最初の例で、スポーツクラブを選択する際に、費用、施設・環境、交通の便、…

固有値問題(2)

つまらないことでひっかかっていましたが、ようやく動くようになりました。 すごい! あとで実例はお見せしますが、下記のプログラムで多次元の固有値問題を解いてしまいます。 ひっかかっていたのはプログラム中にタブがあるとエラーになってしまうことに気…

固有値問題(1)

数学や統計の本を読んでいると固有値というのが出てきますが、APL/J言語でどうやって解くのだろうと思っていました。英語ではなぜかドイツ語みたいな単語でeigenvalueと呼ぶらしいのですが、英語でも日本語でも調べていてしっくりこないでいたところ、ネット…

分数を小数に戻す

J言語では有理数をあつかえてとても気持ちがいいのですが、このときx:(エックスコロン、extended precision)という動詞を使います。 2 % 3 0.666667 x: 2 % 3 2r3 ここで2r3とかが分数(fraction)です。分数のままで普通の計算ができます。自動的に約分されて…

ブール代数

(=/; +./; *./; ~:/; -.@=/; =&.-./)~ 0 1 +---+---+---+---+---+---+ |1 0|0 1|0 0|0 1|0 1|0 1| |0 1|1 1|0 1|1 0|1 0|1 0| +---+---+---+---+---+---+ =(イコール)は同じかどうかのテストですのでブール代数としてもそのまま使える。 +.(プラスドット)はO…

離散数学

J言語のテキストを読んでいたら、有限数学(finite mathematics)という言葉がありました。連続体ではなく、数え上げる数学というような意味で使われていたのを調べたところ、現在ではこの言い方よりも離散数学(discrete mathematics)というらしい。本屋に行く…