hirax.net::Keywords::「C言語による有限要素法入門」のブログ



1999-03-25[n年前へ]

電界計算をしてみたい[有限要素法編その1] 

有限と微小のパン

 今回のサブタイトルは一目瞭然であるが、森博嗣のミステリのタイトルそのままである。

森博嗣 著 「有限と微小のパン」

 何故、「電界計算をしてみたい-有限要素法編その1-」が「有限と微小のパン」に繋がるのか。もちろん、"有限要素法"と"有限と微小のパン"の「有限」をかけた駄洒落ではない。有限要素法を考えるとき、私は森博嗣に足を向けては寝ることができない。それが、なぜかは下の本を見ればわかる。

森博嗣 著 「C言語による有限要素法入門」

 これは、学生時代に有限要素法を勉強するために使った本である。「森 博嗣 著」と書いてあるのがわかるだろうか。いや、まさかこの本の作者がミステリを量産するとは想像もしなかった。ビックリである。講談社ノベルズと森北出版の両方から本を出している人は他にはいそうにない。

 本題と関係のない話はここまでにしておく。今回はMathematicaで有限要素法を用いて静電界計算を行いたい。とりあえず、ソルバーとプリ・プロセッサまでつくる。その応用は続きの回で行いたい。Mathematicaで有限要素法を勉強するには、森北出版の依田 潔 著「Mathematicaによる電磁界シミュレーション入門」を参考にした。任意の電荷配置のPoisson方程式を解くようにしてある。

 今回使用したMathematicaのNotebookをHTMLで出力したものをここに示す。Notebook中でエラーが表示されているところは初期設定の変数をきちんと設定してやれば、エラーは出ないはずである。

次回に詳しく計算モデルの説明を行うので、今回は計算モデルの詳細については記述しない。Notebook内に、モデルの詳細は記述してある。

 このNotebookを使った計算、出力例を以下に示す。

電界計算の例

平行平板電極の間に誘電体層があるモデル

平板電極と三角柱電極の間に誘電体層があるモデル

平板電極と円柱電極の間に誘電体層があるモデル

分割要素

分割要素

分割要素

電位表示(色がきちんとしたhueでないことに注意)

電位表示(色がきちんとしたhueでないことに注意)

電位表示(色がきちんとしたhueでないことに注意)

半分の領域の電位を鳥瞰図にしたもの

半分の領域の電位を鳥瞰図にしたもの

半分の領域の電位を鳥瞰図にしたもの

 Mathematica3.0のHTML出力は大変便利だが、漢字が化けるのが困りものだ。しかも、ちょっと似た漢字に化けてしまうからわかりにくい。今回のNotebook中で化けた漢字を以下に示す。

  • 油界 <- 電界
  • 堰素 <- 要素
  • 誘油 <- 誘電
  • 姦み込む <- 組み込む
  • 表傭 <- 表面
  • 壓さ <- 高さ
  • 堆心 <- 重心
  • 肖似 <- 近似
  • 内占 <- 内部
  • 傭積 <- 面積
  • 回寂 <- 回転
  • 進当 <- 適当
  • 懷瞰 <- 鳥瞰


中国語みたいな化け方である。しかも、意味としても何か変な化け方である。いつか、この対処方法と理由を考えてみたい。それにしても、週末の遊び道具としてはMathematicaは素晴らしいと思う。

2002-08-25[n年前へ]

オッパイ星人の力学  巨乳アナライザー 編 

有限要素法でおっぱい変形シミュレーション

 地球を侵略しようとしているオッパイ星人達は、世界各地のありとあらゆる町に潜んでいる。そして、街を歩く「可哀相な子羊(巨乳)」の揺れ動く胸に視線をロックインさせ、その視線を不自然なまでに上下左右にスイングさせている。

 ワタシは地球を、そして可哀相な子羊(巨乳)達をこの手で守るために、そんなオッパイ星人達と日夜人知れず戦い続けている。東に「可哀相な子羊(巨乳)」がいると聞けば、「巨乳ビジョン」を装着して出動し子羊を見守り、西に強風が吹くと聞けば、青少年達のために「風圧を頼りに疑似オッパイの研究」をしてきた。雨ニモマケズ、風ニモマケズ、田舎の母はオネガイダカラカラヤメロトイヒ、ヒトリノトキニハナミダヲナガシ、ミンナニオッパイニンゲントヨバレつつも、それでもワタシは戦い続けてきたのである。

 そして、単純な「半円モデル(松坂季実子項)+バストに関するフックの法則」の研究から始まったオッパイ星人との戦記は「オッパイ星人胸のヤング率編」「揺れる胸の動き編」パラメータ励振編」「バスト曲線方程式編」「仏の手にも煩悩 編」「あなたのオッパイ星人度編」「求む未来のヒロイン編」「禁断の最終兵器 編」と長く続き、今ではワタシは高度な画像処理技術を駆使した「巨乳ビジョン」を開発したことにより、街中で目にしたオッパイの大きさ・形状を定量的に把握することさえできるようになった。

 しかし、「巨乳ビジョン」を装着し街中をパトロールし、可哀相な子羊達をワタシのこの手で守ろうとしたとたんワタシは気づいたのである。街中に「可哀相な子羊達(巨乳)」がやたら歩いているのである。「可哀相な子羊達(巨乳)」が多すぎるのだ。あまりに大きな谷間が多すぎて、一体どの谷間をガードすれば良いのやら、皆目見当がつかないのである。いつの間にか、街中には「天使のブラ」やら「ウォーターパッド」やら、「シェルフカップ」などが溢れてしまい、外見からだけではその中身は何がなんだかよく判らなくなってしまったのだ。「巨乳ビジョン」を装着したワタシは、そんな谷間を見ながら途方に暮れてしまったのである。

 真のオッパイ星人ならともかく、BreastTest IIなどの「オッパイ・テスト」でも満点を取れないワタシは単に大きさに惑わされてしまったりして、どれがホンモノだかニセモノだか皆目見当がつかない。こんなことでは、自然食グルメ志向であって、ホンモノ・ニセモノなど即座に知ることができるだろうオッパイ星人達に勝つことなどできるはずがない。そこで、色んな矯正(天使のブラ・詰め物…)がされている時に、一体バストはどんな形状になるのかを詳細に調べて、「どんな谷間が自然で、どんな谷間が不自然か」を調べてみることにした。まず今回は、さまざまな矯正技術が駆使されている場合にもバストの構造・形状をより詳細に知ることのできるように、バストの形状変形を有限要素法(FiniteElement Method = FEM)を使って計算する「巨乳アナライザー」を作ってみることにしたのである。
 

森博嗣 著、 C言語による有限要素法入門
 学生時代に、ボーリングした穴の形状変化を計算するために、有限要素法(FiniteElement Method = FEM)を勉強した。その時に参考書代わりに使った「森博嗣著、 C言語による有限要素法入門」。
 まさか、その後この本の作者がミステリーを量産し、そしてまさか自分がFEMでオッパイの計算をし、「巨乳アナライザー」なんかに挑戦することになるとは思いもしなかったのである。時の流れはオソロシく、そして時にほろ哀しいものなのだ。
 

 まずは、立っている女性のバスト部がどう変形するかを計算してみた。判りやすいように、モデルとしては二つの場合

  1. 小振りな微乳の場合
  2. 大振りな巨乳の場合
を計算してみた。以前、「バスト曲線方程式 編」で「水風船モデル」を用いて「表面の皮膚のみが弾性を持つ」として計算をしてみたが、今回は「バストの部分全てが弾性を持つ」として計算してみたわけである。その結果が下の二つの図である。いずれの図も立っている女性のバスト部の断面であり、縦軸は鉛直軸であり、ちょうど女性の胸前面に一致し、水平軸は女性の正面方向である。
 
FEM(Finite Element Method)によるバスト変形計算例
(立っている女性のバスト部の断面)
小振りなバスト(微乳)の場合
それほど垂れない
大振りなバスト(巨乳)の場合
自然に垂れてしまう

 大振りなバスト(巨乳)の場合、重力の影響で下に大きく垂れてしまっていることが判る。これでは、確かにブラジャーをつけるのが自然だろう。それに対して、小振りなバスト(微乳)の場合には、それほどは垂れていないのである。これなら、ブラジャー無しでも大丈夫だろう、いや、そもそも「少なくともオッパイが垂れるのを防止するためには」ブラジャーを着ける必要もないだろう。

 そして、単にバストの大きさだけでなく、hirax.netが提唱する「バストに関するヤング率(若いと力に対して伸びが小さいが、年をとると伸びが大きくなってしまう)」の考えに基づき、ヤングなバスト(=「堅い」バスト)とそうでない柔らかいバストの場合の比較をしてみたのが、下の比較図である。左のバスト中の水色の部分は少し堅い(=ヤングな)物性を持っていて、少し「堅い」バストになっている。それに対して、右側は先ほどの平均的なヤング率を持つバストなのである。
 

堅いオッパイ、柔らかいオッパイ
「堅い」オッパイの場合
全然垂れない
柔らかいオッパイの場合
垂れる

 右側に示したノーマルなバストでは重力の影響を強く受けて垂れてしまうのに対して、やたらヤングなヤング率を持つバストの場合には不自然なほどに形が崩れていないことが判るだろう。まるで、アニメやマンガに描かれる女の子のようなバストになってしまっているのである。逆に言えば、アニメやマンガに描かれている女の子は「やたらにヤング(=やたらに肉が堅い)」という物性を持っていることが判るのである。

そして、せっかく今回有限要素法を用い始めたのだから、もう少し複雑なものを計算してみた。それが下の中央である。小振りなバスト(微乳)を大きくするために、バスト内部に少し「堅い(=ヤングな)」物質を入れてみたのである。もちろん、「柔らかい(=アダルトな)」物質を入れてみても良いのだけれど、それではどうしても大きくなった分、下へ垂れてしまう。ここでは、「大きい巨乳」と「きれいな美乳」を両立させるために、あえて自然のバストよりも不自然なくらいヤングな物質をバスト内部に入れて、バストアップしてみたわけである。ちなみに、下の左側はバストアップ前の「小振りなバスト(微乳)」であり、右側は自然度100%の柔らかい巨乳の場合である。
 

オッパイ内部に堅い物質を挿入する
小振りなバスト(微乳)
 

自然のオッパイ内部に
少し「堅い=ヤングな」物質を
入れてみる
自然100%の
柔らかいオッパイの場合

 中央の少し「堅い(=ヤングな)」物質を入れてみた場合、バストアップしつつそれほど不自然でない垂れ方をしており、「大きい巨乳」と「きれいな美乳」が両立していることが判る。逆に、このような形状のバストを見かけたならば、そのバスト内部に隠されている「ヤングなバストアップ層」の存在を感じ取ることができるのだ。

 つまり、今回開発を開始した「巨乳アナライザー」により、バスト内部の構造によってバストがどんな外形状に変形するかをこれから色々と解析し続けていくならば、「バストの外見を見ればその内部に一体どんな構造が隠されているかを感じ取ることができる」ようにすらなるハズなのだ。そうすれば、「天使のブラ」やら「ウォーターパッド」やら、「シェルフカップ」などのせいで街中に溢れる数え切れない大きな谷間の中から、オッパイ星人に狙われそうな「可哀相な子羊(巨乳)」を見つけ出し、ワタシのこの手でその巨乳を子羊を守ることができるようになるのである。

 そしてまた、バスト内部の構造を見ただけで知ることができるワタシは、街中を歩く女性に「そのウォーターパッドなかなか良いですね!どんな感じなんですか?」と賛辞の言葉をかけることだってできるようになるのである。そんな意見を聞くことができれば、その言葉をかけられる方だってきっとウレシイはずなのでる。

 そしてそれだけでない、「巨乳ビジョン」+「巨乳アナライザー」により、チラっと見ただけでバスト内部の脂肪組織のヤング率(=柔らかさ)の分布すら感じ取ることができるようになったあかつきには、ワタシは街中を歩く女性に「おや?キミの右のバストの少し奥に、ちょっと堅いしこりがあるようですね。念のため乳ガンの検査をしてはいかがでしょう。」とアドバイスすることだってできるかもしれない。オッパイ星人に襲われそうな可愛そうな子羊達を守るだけでなくて、世界の全女性のための乳ガン早期発見にだって貢献できるようになるかもしれないのである。

 こんなワタシを、「巨乳ビジョン」を装着し「巨乳アナライザー」を駆使して街中で人知れず戦うワタシを、人が感謝することは決してないだろうが、雨ニモマケズ風ニモマケズ、ワタシはこれからも戦っていこうと気持ちも新たに誓うのである。

2006-10-09[n年前へ]

「オッパイ星人」だって、ハッカーになりたい……!? 

■  「ハッカー」でない私ですが…

 高校時代の同級生だった川合史朗さんからバトンが回ってきましたが、私は「ハッカー」ではありません。コンピュータを使い出したのは'80年くらい*1でしたから、コンピュータ歴だけは長いことになります。けれど、プログラミングをしていたと言えるのは、地震予知のための計測システム開発*2のためにCで岩盤変形のシミュレーション・プログラム*3を組んでいた大学院時代だけで、「ハッカー」の「ハ」の字も知らないうちに現在に至ってしまいました。たまに、遊びで小さなプログラムを作ることもありますが、アイデア一発型のネタばかり*4で作った後はいつも放置してしまう…という情けない状態です…。
 そんな私ですが、スイカに塩を振りかければより甘くなる、という例もあります。ハッカー猛者の方々に「ハッカーになれなかった人」が混じってみるのもちょっと面白いかもしれない*5と期待し、ハッカーの気持ちを適当に想像(妄想)しながら*6、思いついたことを書いてみます。

*1 あまり表だっては言いづらいのですが、秋葉原でapple][ コンパチの部品を買って組み立て使っていた世代です…。

*2 この研究を数年後に引き継いでいたのが「スーパー・ハッカー」近藤淳也 はてな社長です。私とはまさに天と地ほどの差がある方です…。

*3 そのときに使った参考書が「C言語による有限要素法入門」著者は(今ではベストセラー推理小説を量産する作家として有名になってしまった)森博嗣氏です。

*4 日本語変換のATOKにPerl・Ruby・Cなどで各種拡張機能をさせるプログラムとか、ノートPC内蔵の加速度センサを利用して立体ディスプレイモドキを実現するソフトとか…。

*5 なにしろ、川合さんが私にバトンを放り投げた理由も「見慣れた面子ばかりだと面白くないので、趣向を変えて(ハッカーというわけではないが)平林さんを」なのですから… _|‾|○

*6 2006年3月号で高林 哲氏がハッカーの習性として書かれていたハッカー精神「深追い、佳境、バッドノウハウ」と共通することもあるかもしれません→「オッパイ星人とバッドノウハウ」を参考に。

■ 「自分のための勉強」を楽しくやろう

 就職して数年した頃、「自分の知識・技術を向上させる機会」や「考えたことを残しておく場所」がほとんどないことに気づきました。そこで、自分が知りたいことを定期的に学び・考えてみることにしたわけです。そして、その「学び・考えた」結果を残しておく場として作ったのが、"hirax.net"です。ですから、サイト"hirax.net"というのは私にとって「自分のための勉強ノート」です。

 当初、この「自分のための勉強ノート」は勤務先のイントラ内サイトとして作りました。しかし、企業内インフラの利用制限が厳しくなってきたこともあり、'98年頃に勤務先のイントラ内部から外のインターネットの世界に引っ越して、現在の"hirax.net"になりました。また、それと同時に「自分のための勉強ノート」の内容を「役に立たない(ように見える)こと」に変えました。それは、「書く内容を業務から離れたものにする」ためです。企業内で研究開発という仕事をしていると、やはり業務内容に近いことを考えていることが多いわけですが、そういう内容を外で公開するわけにはいきません。そこで、(勤める会社のためでなく)自分自身のために「高度な技術」を勉強するけれど、その技術を適用して考えてみる対象・内容は「実利的には何の役にも立たないこと」にしよう、と決めたわけです。

 その結果、流体力学のナヴィエ・ストークスの方程式の解法プログラムの勉強をするけれど、その計算対象は「スクール水着の周りの水の動き」であったり…、有限要素法のプログラムを勉強はするけれど、その解析対象は「女性のバスト」であったり「男性のアレ」だったり、ということになってしまいました…。つまりは、それが、"hirax.net"の「高度な技術を無駄に使う」というスタイルです。そういうスタイルにしたことで、「自分の勉強」を楽しくやることができました。何しろ、難解な流体力学の教科書も(女性のバストと同じような感覚を空気抵抗で再現することができると想像すると)ワクワクする気持ちで読むことができますし、行列計算プログラムを作る作業も(女性のバストの変形を計算できると思えば)素晴らしく楽しい作業に変わるのですから*7

*7 男とはそういうものです(女性読者の方々へ)。なお、女性のためには、科学の粋を凝らした「豊胸ブラジャー」「美人化ソフト」も用意しています。

■ 「やりたいこと」はやってみないとわからない

 「自分のための勉強ノート」ですから、いつでも私は「自分がやりたい」勉強をしていました、と言いたいところですが、そういうわけではありませんでした。なぜかと言うと、「自分のやりたいこと(勉強したいこと)」はこれだ、と自分でハッキリわかっていなかったからです。「(自分がやりたい)何か一つのこと」がよくわからないまま、「ずっと、その場その場で気になったことを勉強して(遊んで)きた」感じでした。その瞬間その瞬間の好奇心の赴くままに、目の前の謎・パズルを(その秘密を解くことができそうな科学技術を勉強しつつ)、楽しみながら考え続けるということを長く続けているうちに、自分のやりたいこと、「楽しくなる科学技術」という方向性*8がようやく見えてきたというのが本当のところです*9

 「やりたいこと」をいきなり思いつき、一晩ノリノリ体力バリバリにプログラミングをして、それを作り出すことができるスーパー「ハッカー」も世の中にはいるだろうと思いますが、私のように、「自分のしたいこと」を自分自身でもよくわからないという方も多いと思います*10。そんな人(時)は、とりあえず何でもいいから続けてみるのもコツだったりするのかもしれません。そうすれば、「将来長い時間をかけて自分がやりたいこと」も浮かび上がってくるだろうし、そういった「将来・現在やりたいこと」が「これまでにやったこと」と繋がってくること*11も多いと思うのです。

*8 Tech総研の編集者いわく「平林さんのやりたいことは、科学技術と男と女ですね、」だそうですから。

*9 「数字がバラバラに書いてあって、その数字を順番になぞっていくと最後に絵が浮かび上がるパズル」みたいなものですね。

*10 川合史朗さんが訳されたPaul Grahamの「知っておきたかったこと」には、若い人がやりたいことを見つけるにはどうしたら良いかが書かれています。

*11 自分用のプログラム・ライブラリを作っていくと、作業が楽になるようなものです。

■ 「長く続ける」コツ

 「とりあえず何でもいいから続けてみる」と書きましたが、「続けるということ」は実は難しいことだろう、と思います。(飽きっぽさでは天下一品の)私が比較的長く続けることができた理由の一つは、「その瞬間その瞬間の好奇心の赴くまま」=「いつでも、その瞬間に好きなことを楽しんでいた」からだったと思います。だから、飽きることなく(内容は実は変わっているわけですから)続けることができたわけです。

 「自分の好きなことをする」と長く続けることができると思うのですが、そのためには「自分の好きなことを見失わないようにする」ことが必要です。そして、「自分の好きなことを見失わないようにする」ためには、「他人の感想を(あんまり)気にしない」ということが一番です。一回、自分のイメージをどん底まで突き落としてみるのも良いかもしれません*12

 自分が「これは凄い!」と思うことが、他の人にとっては「これ、何だか全然面白くないなぁ…」と感じられることはよくある話です。人それぞれ、好みも背景も色々なことが違うのですから、それは当然です。「ただ一つの正解があるようなこと」を追求したいなら別だと思うのですが、そうでない「自分の好みを追求」しようとするならば「他人を参考にして学ぶのは良いけれど、あんまり他人の感想は気にしない」ということが結構良いような気がします。他人の感想を気にしすぎると否定的な感想に凹んでしまうこともありますし、他人の期待に沿ってやることを変えていってしまうと、いつの間にか「自分の好きでないあたり」まで流れていってしまうことも多いと思います。

*12 私の場合、「オッパイ大好きな変態じゃないの?」というような感想を言われまくりで、自分のプライドなんかどっか遠くに消えていってしまいました。その結果、他の人の感想(的確な指摘とも言う)を気にしないというワザが使えるようになったのです…。

■ やっぱり他の人に伝えたいから「わかりやすく」

 他人は自分とは違うものですから、他の人をあまり気にしないようにしたいと思ってはいます。それでも、やっぱり「自分が楽しいと思うことを他の人に伝えたい」とも思っています。自分が面白いと思うことを見つけた時、それに共感してくれる人がいたらうれしいものです。他の人を過剰に気にしないようにした方がいいとは思う一方で、「自分の考えたこと・感じたことを他の人に伝え」「自分の作ったものを公開する」上で「他の人にもわかりやすく・他の人が眺めやすい」ようにしようという試行錯誤は続けていこうと思っています*13

*13 そんな「他の人に伝える」ための試行錯誤の結果、面白く人にわかりやすくプレゼンテーションをするにはどうしたら良いか?という書籍「理系のためのプレゼンのアイデア」を技術評論社から11月に刊行予定です

■ 「バトン」が次に飛ぶ先は…?

 さて、次回へのバトンは増井俊之さんに渡そうと思います。「わかりやすさ」「スーパー・ハック」を華麗に両立させている増井さんの秘密を伺ってみたいと思います。



■Powered by yagm.net