初学者にとってRubyの良いところ(と勝手に思ってます)。
オブジェクト指向を学ぶのに一番良い(と勝手に思ってる)。
汎用プログラミング言語。
数値解析を出来る。
Emacsを勉強したくなる。
作者が日本人。
もっとたくさんあると思います。
日本発信のプログラミング言語。
使うことで、応援したい。
2013年5月30日木曜日
解析とは
解析解と言うと、私は陽的な関数で表現できるものを想像します。
評価がしやすく、電卓を叩けば解を得られます。
工学的な立場からすると、コストが低く済みます。
ただし、精度の問題があろうかと思います。
「陽的な関数で表現」できる現象は、それほど多くないと思われます。
したがって、ある程度の精度を持つ解を得るために「数値解」が必要になると思います。
離散化して空間積分、時間積分すれば解は得られるでしょう。
それとは別に摂動法があります。
パータベーション。
非常に有用だと思います。そして「オーダー」の概念が重要であり、工学の極みのように思います。
プログラムはものづくりに近いです。
数値解を求めるのは非常に楽しいです。
でも、技術屋としてはちょっと立ち止まり、精度とコストのバランスを考えて、最適な手法を選びたいものです。
摂動法も実は楽しいし、好きだったりします。
「目的は何なのか」
「どんな答えが欲しいか」
「そのためにどの程度の精度が必要か」
「そのためにどれくらいのコストが必要か」
「得られた解に対してどのように評価するか」
「結論は何なのか」
「目的と結論に整合が取れているか」
こんな手順でPDCAを回して、次の世代に明確な課題(目的)を残す。これが技術者としての理想像だと思います。
評価がしやすく、電卓を叩けば解を得られます。
工学的な立場からすると、コストが低く済みます。
ただし、精度の問題があろうかと思います。
「陽的な関数で表現」できる現象は、それほど多くないと思われます。
したがって、ある程度の精度を持つ解を得るために「数値解」が必要になると思います。
離散化して空間積分、時間積分すれば解は得られるでしょう。
それとは別に摂動法があります。
パータベーション。
非常に有用だと思います。そして「オーダー」の概念が重要であり、工学の極みのように思います。
プログラムはものづくりに近いです。
数値解を求めるのは非常に楽しいです。
でも、技術屋としてはちょっと立ち止まり、精度とコストのバランスを考えて、最適な手法を選びたいものです。
摂動法も実は楽しいし、好きだったりします。
「目的は何なのか」
「どんな答えが欲しいか」
「そのためにどの程度の精度が必要か」
「そのためにどれくらいのコストが必要か」
「得られた解に対してどのように評価するか」
「結論は何なのか」
「目的と結論に整合が取れているか」
こんな手順でPDCAを回して、次の世代に明確な課題(目的)を残す。これが技術者としての理想像だと思います。
2013年5月28日火曜日
xyzzy4
やはり、設定とか、使い方とか記した方が、
関係者のモチベーションになるというか、恩返しのような気がしてきました。
Windowsを使ってて、今までで一番すごいソフトだと思いました。
(興奮冷めやらぬ・・・。)
暇を見つけて、記しておこうと思います。
AWKと絡められたら、良いな。
関係者のモチベーションになるというか、恩返しのような気がしてきました。
Windowsを使ってて、今までで一番すごいソフトだと思いました。
(興奮冷めやらぬ・・・。)
暇を見つけて、記しておこうと思います。
AWKと絡められたら、良いな。
音楽
情熱スパイラルというアルバムを買いました。
ベースがかっこいいです。しかも女性。
ギターのギュイーン(不協和音)も良かったです。
でも、う〜ん、やはりバンドはリズム隊から入ってしまいます。
ベースの音を拾いながら聞いてしまいます。
チリペッパーズのフリーさんの影響だと思います。
「Give it away」は格好良すぎます。
メロディだとどうしてもピアノの方が好きですね・・・。
ベースがかっこいいです。しかも女性。
ギターのギュイーン(不協和音)も良かったです。
でも、う〜ん、やはりバンドはリズム隊から入ってしまいます。
ベースの音を拾いながら聞いてしまいます。
チリペッパーズのフリーさんの影響だと思います。
「Give it away」は格好良すぎます。
メロディだとどうしてもピアノの方が好きですね・・・。
2013年5月27日月曜日
2013年5月26日日曜日
xyzzy
普段はNTEmacsを使ってますが、良く落ちます。
Mac、Linuxは落ちないんですが。。。
会社はWindowsなので、xyzzyを使ってみようかと本だけ購入。
でも一番はCommonLispの簡易環境が整うところだと思う。
なるべく、少ないツールを使い込みたいですね。
Mac、Linuxは落ちないんですが。。。
会社はWindowsなので、xyzzyを使ってみようかと本だけ購入。
でも一番はCommonLispの簡易環境が整うところだと思う。
なるべく、少ないツールを使い込みたいですね。
2013年5月22日水曜日
言語の使い分け
大学のとき、C言語の単位を落としました。
某大学のコンピュータリテラシーはUNIXなので、WindowsやMacすら触ったことなかった人間が、いきなりターミナルなんかでls、pwd、cd、mkdirなんかで操作を覚えて、muleを使ってました。
数年後、本気でCを勉強しようと思ってポインタの本を買って、すごく世界が広がりました。配列とポインタのつながり、構造体変数のアクセスなんかがわかると面白くなりました。
あくまで科学技術計算の範疇なので、流体の差分法や有限体積法を数値的に解くツールにすぎないので、メモリの管理とかに気を取られたくはないですが、如何せん、ほかの言語に比べて速いです。科学技術計算目的ならFortranとC/C++の2択になると思います。
一方で、出てきた解析結果の整理までFortranやC/C++を使うことはなく、VBAやその他スクリプト言語の利用が多いと思います。FortranやC/C++がヘビー級、スクリプト言語はライト級でしょうか。二つくらいあると良いと思います。
AwkのワンライナーはLinux文化が色濃いですが、むちゃくちゃ便利ですね。なぜ広まらないのか不思議です。
遊びだったり、趣味のプログラムならRealBasicを使いたいです。これが仕事に出来たらいいなあと最近思っています。GUIでいろいろ追加できるので便利ですよ。
某大学のコンピュータリテラシーはUNIXなので、WindowsやMacすら触ったことなかった人間が、いきなりターミナルなんかでls、pwd、cd、mkdirなんかで操作を覚えて、muleを使ってました。
数年後、本気でCを勉強しようと思ってポインタの本を買って、すごく世界が広がりました。配列とポインタのつながり、構造体変数のアクセスなんかがわかると面白くなりました。
あくまで科学技術計算の範疇なので、流体の差分法や有限体積法を数値的に解くツールにすぎないので、メモリの管理とかに気を取られたくはないですが、如何せん、ほかの言語に比べて速いです。科学技術計算目的ならFortranとC/C++の2択になると思います。
一方で、出てきた解析結果の整理までFortranやC/C++を使うことはなく、VBAやその他スクリプト言語の利用が多いと思います。FortranやC/C++がヘビー級、スクリプト言語はライト級でしょうか。二つくらいあると良いと思います。
- ヘビー級(Fortran、C/C++ インテルコンパイラだと激速、PGIは使ってないですが、GPUに計算させるならPGIのようです)
- ライト級(Perl、Python、Ruby、Pythonのmatplotlibはすごいです)
- ワンライナー(Awk、ほとんど勉強しなくてもCを知ってればかなり使えるはず)
AwkのワンライナーはLinux文化が色濃いですが、むちゃくちゃ便利ですね。なぜ広まらないのか不思議です。
遊びだったり、趣味のプログラムならRealBasicを使いたいです。これが仕事に出来たらいいなあと最近思っています。GUIでいろいろ追加できるので便利ですよ。
統合開発環境
例えばRubyを使うとする。
エディタはEmacs、Vimが一番良いと思う。
プラットフォームに依存せずにそれぞれバイナリがありますし。
一度、覚えるとかなり速くなる。
ただ、大規模開発環境になるとエディタだけではかなりきつくなる。
プラットフォーム別に考えると
いろいろ見たが、フリーで考えるとEclipse、Aptana、Netbeansがなるものがあるらしいですが、RubyやPythonだとAptanaが一番良さげの印象です。
WindowsとMacで試しましたが、使用感は余り変わりません。
ところでRealbasicも勉強中ですが、言語および開発環境として個人的に一押しです。
使い捨てのスクリプトも大規模も行けます。vbaをかじってる人は多いと思うので、違和感なく使えます。Webアプリもいけるのでもっと勉強して、この備忘録に追加できれば良いと思ってますよ。
エディタはEmacs、Vimが一番良いと思う。
プラットフォームに依存せずにそれぞれバイナリがありますし。
一度、覚えるとかなり速くなる。
ただ、大規模開発環境になるとエディタだけではかなりきつくなる。
プラットフォーム別に考えると
- Windows
- Mac
- Linux(個人的にはCentOS使ってます)
いろいろ見たが、フリーで考えるとEclipse、Aptana、Netbeansがなるものがあるらしいですが、RubyやPythonだとAptanaが一番良さげの印象です。
WindowsとMacで試しましたが、使用感は余り変わりません。
ところでRealbasicも勉強中ですが、言語および開発環境として個人的に一押しです。
使い捨てのスクリプトも大規模も行けます。vbaをかじってる人は多いと思うので、違和感なく使えます。Webアプリもいけるのでもっと勉強して、この備忘録に追加できれば良いと思ってますよ。
realbasic pure advection
' Sub Actionに記述した線形移流方程式
’f:スカラー量
’fn:スカラー量 (更新後)
’df/dt + u df/dx = 0
'dはパーシャルに読み替えてもらえれば。
Dim s as string
Dim i as integer
dim f() as double
dim fn() as double
dim n As Integer
dim fout as FolderItem
Dim txtout as TextOutputStream
s = "Program START!"
lbResult.AddRow(s)
Redim f(ixmx)
Redim fn(ixmx)
For i = 1 to ixmx
f(i) = 0.0
fn(i) = 0.0
If i>10 And i<20 Then
f(i) = 1.0
fn(i) =1.0
end if
s =str(i) +","+ str(f(i))
lbResult.AddRow(s)
next i
For n=1 to 100
for i =2 to Ixmx
fn(i) = f(i) - u*dt/dx *(f(i) - f(i-1))
next i
for i = 2 to ixmx
f(i) = fn(i)
next i
next n
For i = 1 to ixmx
s = str(i) + ","+str(f(i))
lbResult.AddRow(s)
next i
’f:スカラー量
’fn:スカラー量 (更新後)
’df/dt + u df/dx = 0
'dはパーシャルに読み替えてもらえれば。
Dim s as string
Dim i as integer
dim f() as double
dim fn() as double
dim n As Integer
dim fout as FolderItem
Dim txtout as TextOutputStream
s = "Program START!"
lbResult.AddRow(s)
Redim f(ixmx)
Redim fn(ixmx)
For i = 1 to ixmx
f(i) = 0.0
fn(i) = 0.0
If i>10 And i<20 Then
f(i) = 1.0
fn(i) =1.0
end if
s =str(i) +","+ str(f(i))
lbResult.AddRow(s)
next i
For n=1 to 100
for i =2 to Ixmx
fn(i) = f(i) - u*dt/dx *(f(i) - f(i-1))
next i
for i = 2 to ixmx
f(i) = fn(i)
next i
next n
For i = 1 to ixmx
s = str(i) + ","+str(f(i))
lbResult.AddRow(s)
next i
2013年5月21日火曜日
TVD
方程式を直接離散化した方が、分りやすい。
分りやすいとは、余計なスキームの特性を考えなくて良いということだろう。
数値計算の手法を研究する分野ならそれは駄目だけど、ユーザー(数値解析をツールとする人間)からすれば、優先順位は下がる。
その点では、パタンカー先生(香月先生の訳本)の本は、
各微分方程式の各項の解に集中できるので、すばらしいと思う。古いですが。
でもあまりにも数値シミュレーションが当たり前になりすぎて、
本当の基本を分ってる人が少ない。
個人的にはすごくCIP法が好きです。
でもTVDを勉強するとさらに移流方程式に対する理解が深まる上、やっぱりCIPの素晴らしさを改めて実感できる。CIPで数値計算好きになったのもありますが・・・。
こういうことを分った人間が数値解析して、他人に説明しないと、どんどん日本は駄目になると思う。
分りやすいとは、余計なスキームの特性を考えなくて良いということだろう。
数値計算の手法を研究する分野ならそれは駄目だけど、ユーザー(数値解析をツールとする人間)からすれば、優先順位は下がる。
その点では、パタンカー先生(香月先生の訳本)の本は、
各微分方程式の各項の解に集中できるので、すばらしいと思う。古いですが。
でもあまりにも数値シミュレーションが当たり前になりすぎて、
本当の基本を分ってる人が少ない。
個人的にはすごくCIP法が好きです。
でもTVDを勉強するとさらに移流方程式に対する理解が深まる上、やっぱりCIPの素晴らしさを改めて実感できる。CIPで数値計算好きになったのもありますが・・・。
こういうことを分った人間が数値解析して、他人に説明しないと、どんどん日本は駄目になると思う。
2013年5月15日水曜日
2013年5月14日火曜日
2013年5月13日月曜日
ruby
Rubyはオブジェクト指向の勉強にすごく良いと思う。
決して、教育用に限定する訳じゃなく、言語の思想がすごい。
pythonもオブジェクト指向で書けるけど、なんか、違和感が・・・。
おそらく、rubyが「純粋」オブジェクト指向だからだと思ってます。
異論反論たくさんあると思いますが・・・。
でも日本人だからRubyを応援したい。
東京近郊のrubyistのあつまりに参加したいけど、
知り合いが誰もいない・・・。
決して、教育用に限定する訳じゃなく、言語の思想がすごい。
pythonもオブジェクト指向で書けるけど、なんか、違和感が・・・。
おそらく、rubyが「純粋」オブジェクト指向だからだと思ってます。
異論反論たくさんあると思いますが・・・。
でも日本人だからRubyを応援したい。
東京近郊のrubyistのあつまりに参加したいけど、
知り合いが誰もいない・・・。
real basic
たのしくプログラミングしたい。
環境の設定だって、めんどくさいし、思いどおりいかないことは多くある。
そんなところに時間をかけたくない人はたくさんいると思う。
(私はそんなところも含めてプログラムが好きだが)
real basicはフリーじゃないけど、とりあえずインストールしたら、
プログラムをすぐ書けるようになるし、プラットフォームに依存しないし。
WindowsでMacの実行ファイルを作成できるのはすばらしい。
早く、iOS対応してくれたらなあ。
環境の設定だって、めんどくさいし、思いどおりいかないことは多くある。
そんなところに時間をかけたくない人はたくさんいると思う。
(私はそんなところも含めてプログラムが好きだが)
real basicはフリーじゃないけど、とりあえずインストールしたら、
プログラムをすぐ書けるようになるし、プラットフォームに依存しないし。
WindowsでMacの実行ファイルを作成できるのはすばらしい。
早く、iOS対応してくれたらなあ。
C
Cのコンパイラも欲しいと思っている。
インテル製のやつ。
Cは最近本気で書いてないので、忘れてるんじゃないかと恐怖が・・・。
あ、C++じゃないですよ。純粋なCの方。
ヘッダーは仕様書だ、的なことを聞いて、本当にそうだなと思う。
動的言語はそれがないから、使い捨てに近い使い方しか出来てない。
(いや、ちゃんと書けばいいことだけで動的静的議論をするつもりはないです)
インテル製のやつ。
Cは最近本気で書いてないので、忘れてるんじゃないかと恐怖が・・・。
あ、C++じゃないですよ。純粋なCの方。
ヘッダーは仕様書だ、的なことを聞いて、本当にそうだなと思う。
動的言語はそれがないから、使い捨てに近い使い方しか出来てない。
(いや、ちゃんと書けばいいことだけで動的静的議論をするつもりはないです)
Real Basic
Real basic
WindowにPushbuttonを配置。
pusshbuttonをダブルクリックして、Actionの関数で下記ソースを記述
MsgBox "Hello World"
これでボタン押すとHello Worldが出てくる。
WindowにPushbuttonを配置。
pusshbuttonをダブルクリックして、Actionの関数で下記ソースを記述
MsgBox "Hello World"
これでボタン押すとHello Worldが出てくる。
GUIプログラミング
GUIのプログラミングは世の中的には普通だろうけど、
科学技術計算ではコンソールが主流だと思う。
real basicはGUIのプログラミングを実施するのに、すごく良いと思う。
VBAをかじっただけだが、何となく書けちゃう。
IDEも優れていると思う。Textでもソース出せるし。
会社で使わせるためのロジックを組み立てなければ。
科学技術計算ではコンソールが主流だと思う。
real basicはGUIのプログラミングを実施するのに、すごく良いと思う。
VBAをかじっただけだが、何となく書けちゃう。
IDEも優れていると思う。Textでもソース出せるし。
会社で使わせるためのロジックを組み立てなければ。
登録:
投稿 (Atom)