2016年3月27日日曜日

雑談:ドーナッツ半分の体積計算(微分積分いい気分?)

先週に引き続き、今回も数学の話です。苦手な方はお引き取り下さい。

・  ・  ・  ・  ・

どういう訳か、ドーナッツ半分(外側を食べちゃって内側だけ残っている形)の体積を計算する必要が出てきました。積分ですよ積分。高校の時は得意だったんですケド、最近はすっかり銹びサビです(苦笑)。
  • ちなみに普通のドーナッツ状の体積は、断面(円)の面積×断面(円)の中心が描く軌跡(円弧)の長さ、で求められます。今回は普通じゃないから大変なのですことよ。
ドーナッツの内側半分の形状、赤斜線は断面

手元のPCにはMathematicaとかの便利な数式処理ソフトはありませんが(お世話になったこともありますが…あんな高価なモノ私物PCには入れられません)Mathematicaの開発元・Wolfram Researchが「Wolfram|Aplha」なる処理系をオンラインで提供しています。高度な計算をするには有料会員になる必要がありますが、簡単な計算だけなら無償で出来ます(ちょっとした数式処理とかが必要になった時などにちょくちょく使っています)

さて、積分。ドーナツの径方向に向かってバウムクーヘンの1層1層のように、細切れにした形を考えれば良いです。

座標を設定してやり、積分してやります

図の赤い断面(厚さΔR)がぐるっと回って作られる円筒形の体積をΔVとすると、この円筒の体積はΔV=2hΔR×2πR=4πR√(r2^2-(r1+r2-R)^2)ΔR。ゆえに半分食べ残したドーナッツの体積Vは、4πR√(r2^2-(r1+r2-R)^2)を変数Rについて[r1, r1+r2]の区間で積分してやれば良い。…良いはずです。

Wolfram|Alphaに直接数式を入力して計算(r1, r2→a, bで表記)

うーん、「標準的な計算時間を超過してしまいました」と言われ、計算結果が出ません。下にある「Try again with additional computation time」をうっかりクリックすると、有料会員登録のためのページに行ってしまいます。ここは財力ではなく知力で勝負です(笑)。変数変換を行って積分しやすい形にしてやりましょう。

R-r1-r2=Sの変数変換です。積分区間は[-r2, 0]に変更です。

Wolfram|Alpha、その2!

定積分の値は合っているような、間違っているような…? 結論から言えば、符号が違います(b=r2の区間を勘違いされているので止むを得ない間違い?なのですが)。何だかスッキリしませんね。仕方無いので、さらに変数変換。S=r2・sinθとします。θの積分区間は[-π/2, 0]になります。

Wolfram|Alpha、その3!

やっと正しい値が計算できました。…って、ここまで来たら、殆ど自分で手計算で積分したようなもんじゃね?(笑) てゆーか。このWolfram|Alpha、時々使っているんですケド、機械に美味しいトコロを持って行かれるのが少し悔しいので、大抵自分でも計算し直しています。なんだかなぁ(笑)。

Maximaとかの無償で使える数式処理ソフト、私物PCへの導入を少し真面目に考えてみようかなぁ(仕事用PCには勝手にソフトをインストールすると叱られるので、当分WEBベースのWolfram|Alphaに頼ることになりそう)。これとGnuplotを組み合わせると技術屋としても結構使える理論解析・グラフ作成ツールが手に入ることになる(GnuplotのI/Fに慣れず20年以上Ngraph派…因みに仕事用PCでは選択の余地なくMS-Excel (苦笑)。←キチンとシステム部に会社非公認ソフト導入の申請手続きをすれば多分NgraphもGnuplotもOKだと思うのですが、面倒臭いんですよね/笑)。

2016年3月19日土曜日

雑談:数列「nのべき乗」の和

出先でメモを取りたくなったりすることってありますよね。ワタシは大抵、A5サイズのレポート用紙と筆記具(大抵はLAMY SAFARIの万年筆)を持ち歩いていて、思いついたことや面白かったことなどを書きつけるようにしています。

筆記具とレポート用紙はよく持ち歩いています

以下、算数のお話です。苦手な方はここでお引き取り下さい。

ある日、外出中に
  1+2+3+…+N=N(N+1)/2
だったよなぁとか思いながら、そう言えば
  1^2+2^2+3^2+…+N^2=1+4+9+…+N^2
って何だっけ?みたいな。高校の頃に習ったような気もするのですが、残念ながらマルっきり記憶にありません。出先だったし、仕方がないので、自力で導出です。携帯電話は持参していましたが、自力での導出にトライもせずネット検索するというのは男のプライド(?)が許しません。

という訳で、以下、その結果。ワタシの思いついた導出法は、たぶん全然スタンダードではないやり方です。

  1+4+9+16…。

1, 4, 9, 16, …の体積を持つ立体をイメージしてしまいました(最初に立体でイメージしてしまったためか、数式操作による導出=後述の「エレガントな」導出方法=には辿り着きませんでした)。イメージしたのは、1辺1のサイコロを、1, 4, 9, 16, …個並べた物。

図1: 1, 4, 9, 16個のサイコロ

このサイコロを積み重ねると、ちょうどピラミッドのようになります。

図2: 積み重ねればピラミッド状になります

このピラミッドに外接する四角錐(赤い線で描いたもの)の体積から、余分な部分を差し引いてやれば、求める値(1+4+9+…N^2)が求められるはずです。

赤い四角錐の体積をVPとすると、これは底辺が(N+1)×(N+1)の正方形、高さ(N+1)の四角錐なので、VP=1/3×(N+1)^3。

図3: 余計な部分の体積と個数を考える

余分な部分は、図3の(A)、(B)、(C)。それぞれの体積をVA、VB、VCとおきます。
(A)は底面1×1、高さ1の四角錐なのでVA=1/3。
(B)は底面が1×(1/2)の直角三角形、高さ1の三角柱なのでVB=1/4。
(C)は底面が(1/2)×(1/2)の直角三角形、高さ1の四角錐なのでVC=1/12。
これらが各段でいくつあるか数え、合計した値がをVRとすると、VP-VRが求める数値。

表: 余分な部分(A)、(B)、(C)の体積と個数

で、(A)(B)(C)の個数を数えたのが上の表。VRは以下のように求められる。
以上から、求める数は

となります。

帰宅後ネットで二乗の数列和を検索したら、答えは合っていました。めでたしめでたし。
  • 後日、こんな計算をした…という件を知人(技術者)に話したら、(予想通り)呆れられました。でも計算をやり遂げ、正しい解答に辿り着くだけの根性は認めて貰えたみたいです。
・  ・  ・  ・  ・

帰宅後、二乗の数列和とともに三乗の場合も導出方法を調べてみました。見つけた方法の方がずっとエレガントでした(後に概要だけ示します)。というか、脳ミソに汗をかいた後にエレガントな物を見てチョット感動したので、当分の間はこの導出方法は忘れないでしょう。この記憶が何年もつか(あるいは数カ月で忘れるのか)は予想もできませんけど(笑)。

さて、エレガントな導出方法。パターン化しています。これを繰り返せば(一般化は出来ないにしても) k-1乗の数列和が求まっていれば、k乗の数列和が求まることになります。ついでなので(調子に乗って、とも言う) 6乗の場合まで求めちゃいましょう。

2乗・3乗の場合はネット記事で答え合わせをしていますが、それ以外はちゃんと答え合わせはしていません。なので以下の内容は間違っているかも知れませんよ? ご自由に参考にして頂いて構いませんが、ご利用の際はご自身の御判断と責任においてお願いします(以下の内容については正確性・精確性を保証いたしかねます…けど確認するだけでも結構大変だと思いますよ?/笑)

※以下の絵、画面表示では字が小さくて読めないでしょうけど、画像上で右クリック→「リンクを新しいタブで開く」等で開けば読めるサイズで見られます。

◆Σk=1+2+3+…+N の値とその求め方

◆Σk^2=1+4+9+…+N^2 の値とその求め方

◆Σk^3=1+8+27+…+N^3 の値とその求め方

◆Σk^4=1+16+81+…+N^4 の値とその求め方

◆Σk^5=1+32+243+…+N^5 の値とその求め方

◆Σk^6=1+64+729+…+N^6 の値とその求め方

上に無保証とは書きましたが、上の結果を多項式フィッティングの計算に使ってみたら正しい結果が出たみたいなので(同じデータ列に対するフィッティング曲線の係数について、MS-Excelさんと意見が一致しました)、たぶん合っているんじゃないかな?と自画自賛しておきます(笑)。
  • データ列(x_1, y_1), (x_2, y_2), …(x_N, y_N) に対してM次多項式によるフィッティング計算は、M+1元1次方程式を解く作業になります(これは(M+1)×(M+1)行列の逆行列を求める作業と等価)。一般にはこれを愚直に計算するしかないのですが、世の中の多くのデータは、x_kが等間隔です(時間だったり周波数だったりの離散値であることが殆どです)。この場合、M+1元1次方程式の係数((M+1)×(M+1)行列の中身)が多少単純化されます。が、この時、Σk~Σk^(2M)が係数の中に出てくるので、この具体値が必要になります。たとえば2次多項式フィッティングならΣk^4まで、3次多項式フィッティングならΣk^6まで必要です。そういうワケで、上の計算に至りました。4次以上の多項式フィッティングは(学術的にはともかく)工業的に必要となることは滅多に無いので(3次もあまり必要になることはありませんけどね/笑)、とりあえず3次多項式フィッティング→Σk^6まで求めることにしました。ちなみにMS-Excelさんは多項式フィッティングは6次までやってくれます(しかもデータが不等間隔でもキチンと計算してくれますし、データがアップデートされるとグラフ上のフィッティング曲線も自動的にアップデートされます…これ実装した人マジ偉い!)。
  • Σk^7やΣk^8はもっとゴチャゴチャした計算になりそうなので、とても手計算はしたくないですね(Σk^6まで腰を据えて計算したワタシ自身を褒めてあげたい位です)。高次の計算が必要になった場合は、ちゃんとした数式処理ソフト(Mathematica等)を使って計算するのが本来のやり方でしょう。少なくとも紙の上で計算するものではないと思います(Σk^6まで手計算したワタシは既にどうかしているのかも知れません)。
長文になってしまいましたが、たぶん、天気が悪いせいです(笑)。

…にしても。電車の中やファストフード店でレポート用紙を広げて変な絵を描いたりゴリゴリとワケワカメな計算をしている姿って一体どのy(以下略

2016年3月13日日曜日

英文テキストからオーディオブックを自作♪

英文テキストから音声ファイルを作成する方法は、色々あります。英文読み上げだけならば、OS標準の機能で簡単にできます。
  • Windowsの「ナレーター」…スタートボタン→検索窓に「ナレーター」と入れれば起動可能。キー入力やフォアグラウンド・プロセス(のテキスト部分)を読み上げてくれたりします。
  • Mac OS Xの「音声入力と読み上げ」(古いOS Xでは「スピーチ」)…「システム環境設定」にある「音声入力と読み上げ」(旧OS Xでは「スピーチ」)を設定すれば、たとえば特定のキーを押した時に選択したテキストを読み上げるなど。
この他、このテのサービスをしてくれるサイトや(短い文章ならMP3ファイルを作成してくれる所もある)、ブラウザのプラグインでテキスト読み上げをしてくれる物もありますが、文字数に制限があるとかMP3が作れないとか。その辺のツールで読み上げさせて、これをレコーダーで録音というアナログな手法も無くはないのですが、もっとスマートなやり方無いのかな~。要するに、制限なしにテキストから音声ファイルを作れるツールを探していた訳です。そんな折、以下のWebページで、MacOS X標準で色々できることを教えてもらいました。
このページには、英語プレゼンテーションの原稿をMacに読み上げさせ(AIFFファイルとして出力し)、これをiPhone/iPodで聴きながらひたすらシャドウイングをするという英語プレゼンの練習法が書いてあるのですが、これを使えば、たとえばpublic domainになっている小説などからオーディオブックが自作出来るではないか!
  • 件のページ曰く、「感情的表現こそありませんが、たぶん大多数の日本人よりは発音が良いです。原稿を完全に覚えるためだけではなく、発音やアクセントなどの勘違いを減らすためにも効果的です。」これは大納得。が、「ジョギングしながらでも英語についていって淀みなく言えるように練習します。」とはなんとも過激な(過酷な)練習方法だ!
閑話休題。

という訳で、Wikisource <https://en.wikisource.org/wiki/Main_Page>にあるpublic domainの英文小説をいくつか音声ファイル化してみました。OS Xのsayコマンドで作られるAIFFファイル(.aiff)はそのままでは容量がデカいので、ビットレートを少し下げたAAC(.m4a)なりMP3(.mp3)なりを作り(これにも色々な道具がありますが簡便にはiTunesでできます)、これをiPod touchに入れて繰り返し聴いて“英語耳”を鍛えます。なんちて。
  • iTunesは音声ファイルのフォーマット変換専用ソフトではありませんが、「環境設定」→「CDをセットした時の動作」→「読み込み設定」の設定を調整することで、変換先の音声ファイルのフォーマット・ビットレート等を調整できます。CDを読み込む時(ソコソコ高音質にしたい)とオーディオブックを作る時(96~128kbpsで十分)とで毎回設定を変えなきゃいけないのが面倒臭いですけどね。
  • あとユーザにとってはどうでも良いことかも知れませんが、このsayコマンドはおそらくOS Xの「読み上げ」ツールの心臓部(アプリから呼び出されている)のようです。
ちなみに。ネット記事をそのままcopy-and-paste (コピペ)すると、OS Xのsayコマンドが処理できない文字が入ったりします(いわゆる2バイト文字など)。これを除去/ASCII化するには、同じくOS Xのnative2asciiというコマンドが使えます。あと、テキストファイルを章毎に準備したなどで何度も同じ手順を繰り返すような場合、シェルのfor/foreachコマンドを使うと大幅に手間が省けます。

複数のテキストファイルの拡張子が全て.txtである場合、MacOSのアプリケーション「ターミナル」でたとえば以下のようにすれば良いです(入力部には下線を引いておきます;sayコマンドには標準入力を食わせています。また、この例では、音声ファイル作成に必要なものではありませんが、作業の進捗状況を見るため、echoコマンドで処理が終わったファイル名を表示させています)

    yuu0720@imac2014% foreach f ( *.txt )
    foreach? native2ascii $f | say -o `basename $f .txt`.aiff
    foreach? echo $f
    foreach? end
    Chap01.txt
    Chap02.txt
    (…途中省略…)
    Chap10.txt
    yuu0720@imac2014%
  • 注:この例ではシェルにはワタシが使い慣れたcsh (tcsh)を使っています。MacOSのターミナルのシェルは、デフォルトはsh (bash)で、同じことをするにはforeachでなくforを使うとか、構文が違うとか…そりゃもう色々と違うのですが…書き出すと止まらなくなるので、必要/興味がある人はご自身で適当に調べて下さい(←shの内蔵コマンド構文を殆ど忘れているので書きようが無いというのが本当のトコロです/苦笑)。
でき上がったAIFFファイルはiTunesに突っ込みます(drag-and-dropするだけ)。iTunes上でこれらのAACバージョンを作ったら、元のAIFFファイルはもう不要なので消してしまって構わないでしょう。
  • 今ドキのMacOSは言語設定が日本語になっていると、デフォの音声が「Kyoko」(日本人)となり、発音がカタカナ発音(笑)で非常にイタダケません。システム環境設定の「音声入力と読み上げ」でネイティブの人の声を選んでおくと良いです(あるいはsayコマンドに「-v Vicki」とかのオプションを付けても良いです)。色々な人(?)の声がありますが、聴き取りやすい人(?)としては、米国人男性Alexさん、それに米国人女性Vickiさん辺りでしょうか。でもenglish speakerは米国人に限りません。聴き取り練習用に、イギリス人、オーストラリア人、それとインド人の人々(?)にもご活躍頂くと役立つかも?(TOEIC対策にもね♪)
売り物やネット上で入手可能な英語教材では、興味を持って聴き続けられる物がなかなかみつからなかったりしますが、
  • 自分が興味のあるもの
  • 読んだことがある本(読んだのは日本語でも良い)
  • 観たことがある映画やドラマの原作
だったりすると、(合成音声の味気ない読み方ではありますが)結構持続して聴くことが出来ます。お試しあれ♪

・  ・  ・  ・  ・

…といったことを後輩のO君にチョット前に言ったのですが(彼もワタシ同様英語の読み書きはソコソコできるけど(TOEICスコアはワタシより上)、聴く・話すが不得意(これはワタシ以上に下手)という典型的な日本人パターン)、先日彼の車に乗せて貰った時に聞こえてきた英語スピーチは、何やら少々怪しげな内容でした。

「オゥタークゥイズアジィャパニーズタームフォーピーポゥウィドゥオブセッシヴイントゥレスツ…」

英語版アンサイクロペディア<http://uncyclopedia.wikia.com/wiki/Main_Page>の「オタク (Otaku)」とか、その他面白そうな項目をいくつか拾って、これを音声ファイル化したとのこと。確かに面白いけど! 飽きずに聴き続けられるけど! そういう使い方を教えたんじゃないってば!!(笑)

・  ・  ・  ・  ・

ちなみにこのO君、MacBook Air使いなのに(生意気なことに高級DTMソフトを使っていてボカロの声も多数揃えている)、最初は「ターミナル」というアプリケーションの存在を知らないようでした。「シェルって何ですか?」とか「カレントディレクトリってどういう意味ですか?」って。シェルはWindowsのコマンドプロンプトに似たようなものだよと言ったら、「?」なご様子(技術者なんだからソレくらい知ってろよ)。UNIXにもMS-DOSにも「さわったことがありません」とのこと(MacOS XはUNIXベースだぞ!…GUIだけ使っている限りあまり関係無いのかも知れませんケド)。う~ん、どこから教えりゃいいんだぁ!(涙)…と、世代ギャップを感じさせられました(普段は生意気なことばかり言う奴なので、こっちも年齢の差をよく忘れるんですけどね/笑)。UNIXシェルの次はスクリプトエディタやAutomaterを仕込んで教えて進ぜよう(悪笑)。それともWindowsでDOS窓…とはもう言わずコマンドプロンプトですね、を有効活用する方法やバッチファイルの書き方の方が良いカナ? (Win10はコマンドプロンプトが大幅に強化されていてチョット感動モンです)

そんなワタシ、Mac使用中は「ターミナル」を1つか2つ起動させていることが多いです(Windowsでもコマンドプロンプトを時々使います)。だって、単純な繰り返し作業や一括処理って、プログラム組んだりスクリプト書いたり、あるいはコマンド行からの入力だけで、大幅に省力化できますから。でもこういうコトをする人って、一部業界以外では既に絶滅危惧種なのかも知れません。少なくともワタシの周囲では、プログラマ・システム管理関係者以外では、何故か一定以上の年齢で、ごく少数…(嗚呼、合掌)。

2016年3月6日日曜日

今週のヘヴィロテ:大村憲司 best live tracks I~VI

ギターの神様、Eric Claptonから大きな影響を受け、また反対にEric Claptonにも影響を与えたとも言われる日本のギタリストがいます。故・大村憲司さんです(1949/5/5~1998/11/18)。お亡くなりになった後、「best live tracks」と銘打ったCDが何枚か発売されていますが、全部好きな作品です。
大村憲司さんについてWikipedia(日本語)→<http://ja.wikipedia.org/wiki/%E5%A4%A7%E6%9D%91%E6%86%B2%E5%8F%B8>

best live tracks I (2003/11/21)

best live tracks VI (2015/11/18)

フロントマンとしての活動よりサポート/スタジオ・ミュージシャンとしてのイメージが強い大村さんですが、フロントで弾いても良い(特にbest live tracks I)。ギターが歌う歌う。聴いているだけで脳ミソが溶けちゃいそう(笑)なのがbest tracks IとVI。Iは何曲か耳コピーしましたが(ギターだけね)、憲司さんの域にはまだまだ遠い。VIは歌モノ中心なのですが、この歌を引き立てるギター、1音1音に魂がこもっていてヤバいです♪ エレキギターの音としては、ストラトキャスター(おそらく愛用していたEric Claptonシグネイチャ・モデル/Fender USA Custom Shop製)のフロントPU (neck pickups)とセンターPU (middle pickup)のチュルチュルした音が多いような…。ポンタさんのドラムもすげー歌っています。

大村さんがいかに紳士的な人であるか、またそれと同時にどれだけ努力家・研究家だったかは(ギターや音楽に関しては非常に負けず嫌い)、たとえばドラマーにして朋友、村上ポンタ秀一さんの著作『自暴自伝』に書かれています。好きな方はチェックしてみては如何でしょうか。

以下、best live tracksのアルバム6枚(正確には9枚…というのはIV~VIは2枚組CDなので)。
  1. Left-Handed Woman - best live tracks I (2003/11/21)
    <http://www.amazon.co.jp/dp/B0000QWY9Y/>
  2. Leaving Home - best live tracks II (2003/11/21)
    <http://www.amazon.co.jp/dp/B0000QWYA8/>
  3. When a Man Loves a Woman - best live tracks III (2015/4/22)
    <http://www.amazon.co.jp/dp/B00T2XUX80/>
  4. KENJI OMURA BAND (PONTA SESSION 4DAYS!) - best live tracks IV (2015/4/29)
    <http://www.amazon.co.jp/dp/B00T2XXPYO/>
  5. Aged 25 Years - best live tracks V (2015/8/12)
    <http://www.amazon.co.jp/dp/B00YRGQPHU/>
  6. KENPON BAND - beste live tracks VI (2015/11/18)
    <http://www.amazon.co.jp/dp/B0155W5P52/>
派手ハデなギターでありませんが、味わいのある演奏です。渋めのギタリスト。一定以上の年齢の人向けでしょうか。。。