ラベル xojo の投稿を表示しています。 すべての投稿を表示
ラベル xojo の投稿を表示しています。 すべての投稿を表示

2014年2月4日火曜日

xojo



xojoの2月の課題があったのでやってみた。
全然きれいじゃないし分ってないことを認識しているが、
とりあえずやってみみた。

下記ページを参考にさせていただいた。

http://www.geocities.co.jp/SiliconValley/2413/tips.html#16

なんかプリントスクリーンが巧くいかない・・・。

2013年9月4日水曜日

蛙跳び2


こんな感じでした。鈍るんです。
LeapFrogは空間積分の右辺をf^{n+1}とf^{n-1}の平均値である0.5*(f^{n+1}とf^{n-1})を使うような良い加減な方法なんであまり好きではないのですが、これ見ると、RungeKuttaを使って計算コスト書けるなら、LeapFrogの方が楽だし、鈍らないし、と判断してしまいますね。何か間違ってることを信じたいです(笑)


2013年9月3日火曜日

蛙跳び


' Leap Frog Method
  dim n as Integer
  dim i as Integer
  dim f(100) as double
  dim fo(100) as double
  dim fn(100) as double
  dim mojiretsu as String

  'Initial Condition
  For i = 1 to ixmx
    if i > 10 And i<20 then
      fo(i) = 1.0
      f(i) = 1.0
      fn(i) = 1.0
    else
      fo(i) = 0.0
      f(i) = 0.0
      fn(i) = 0.0
    end if
  next i
  'Time Marching
  for n =1 to itmx
    'Leap Frog
    for i = 2 to ixmx
      fn(i) = fo(i) - 2*u*dt/dx*(f(i) - f(i-1))
    next i
 
    'Shift Variables
    for i = 2 to ixmx
      f(i) = 0.5*(fn(i)+fo(i))
      fo(i) = fn(i)
    next i
  next n

  'Output
  for i = 1 to ixmx
    mojiretsu = Str(i) +"," + Str(f(i))
    ListBox2.AddRow(mojiretsu)
  next i

4次精度ルンゲクッタと比較すると、2次精度の蛙飛びの方が、鈍りが少ないです。

なぜなんだろう・・・。

2013年9月2日月曜日

ListBox

//ListBoxのクリア

Listbox1.deleteAllRows

Winで作ったバイナリファイルをMacで初めて開きました。
OS依存の機能を使ってないことはありますが、特に問題なく開きました。

ただし、r2でも日本語入力がおかしい箇所がありました。
まあ、日本語使わなければいいんですけどね(笑)

ホビー用途なら、すごくいい環境ですが、
日本語の解説書が充実しないと広まらない気がします。
勿体ない・・・。






2013年9月1日日曜日

値への変換とか(Xojo)

FortranやCを使ってると、値の読み込み時点で型指定をするが、
その他の言語だと、すべて文字列で読み込んで、キャストすることが多いみたいです。

Xojoの型変換は下記のとおり。

Str(数値等):値をstringに変換
Val(文字列):文字列を値に変換

使わないとすぐ忘れます・・・。

ところで、下記に値のやり取りの記録を書きます。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.ListBox1を配置して、表示の場合。

//ListBoxの表示をすべて消す。

ListBox1.deleteAllRows

//ListBox1に文字列Program START!を追加
ListBox1.AddRow("Program START!")

2.TextField1に書き込まれた値を変数に代入

//TextField1に書き込まれた文字列を、別途定義した文字列「strings」に代入
//その後、数値型に変換

Dim strings as string
Dim i as Integer
strings = TextField1.Text
i = Val(strings)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

早くいろいろ晒したいです。

2013年8月21日水曜日

XOJO

新しくなっていたので、更新したら、無言で落ちなくなりました。

やはり、こまめな更新は大事ですね。

数値解析、テキスト処理、WEBアプリ等々ありますが、
速度は別にしてXOJOは全部いけます。

速さは厳しいですが、可能性大だと思ってます。
GUI周りは扱いやすいです。


2013年8月3日土曜日

無題

Linux(Cent OS 6.4)にXojoを入れてみました。

インストールはダウンロードしてダブルクリックするだけという簡単さでした。

LinuxでGUI環境を整えるならxojoが一番良いかと。
Webアプリもいけますし。

WinならVisual Studio、MacならXcodeですが、xojoはすべてのプラットフォームでいけますし、どのプラットフォームでも、他のプラットフォームの実行ファイルを作成できます。

ライセンスがないと実行ファイルの作成は出来ないですが、デバッグ環境でも良く、勉強したいだけなら、フリーのはずです。(間違ってたらすみません)

サードパーティの可能性を感じます。


2013年7月26日金曜日

無題


Real Basicのファイル出力です。
変数iと配列f、f_exactをストリングで繋いでラインで出力する。
fは計算値、f_exactは厳密解です。

  'ファイル出力用
  fout=GetFolderItem("output.txt")
  txtout=fout.CreateTextFile
  txtout.delimiter =Chr(13)
  txtout.WriteLine "i,f"
  for i =1 to ixmx
    outs = str(i*dx)+","+str(f_exact(i))+","+str(f(i))
    txtout.WriteLine outs
  next i
  txtout.Close
  'ファイル出力用終わり

2013年7月7日日曜日

無題

なんか、ゾージョーって書くとアクセス増えるので、書かないことにします。

2013年7月1日月曜日

ダムブレイク3

いろいろ弄って、運動方程式の記述を間違っていることに気づいた。

修正したけど、急変するところでは、1次風上を使っても、振動が残ります。
ただ、ベースは出来たので、ようやくFDSの人工粘性を入れられます。

Leap Frog、1st_Order_upwind、人工粘性でスーパーロバストにしてやる予定。

2013年6月30日日曜日

ダムブレイク2

膨張波と伸縮波がうまく表現できてないことが分りました。

もう少し、考えてみます。

とりあえずCで書いてますが、いろんな言語で書くにします。

履歴書書かなきゃ・・・。

そろそろ会社に行くかな?

ダムブレイク

DamBreakはオイラーの方程式を基礎方程式として、FDS系の解法が一番良い気がします。コロケート格子で。

スタッガードスキームだと、そのまま離散化すれば良いですが、ショックキャプチャリングがうまくいかなくて、若干の数値振動が残ります。

シビルエンジニアリングの世界ではほとんど1次風上が多いですね。
正直気に食わないですが。。。

FDS系の解法はXojoで書いてみることにします。そのうち、ソース晒しますね。
今のところbetter C的なC++で書いてます。

もう少し考えてみます。


2013年6月23日日曜日

xojo


 minmode(r)

  if r>=1 then
    r =1.0
  end if
  if r>0 then
    return r
  else
    return 0.0
  end if

vanLeer(r)
return (r+abs(r))/(1+abs(r))

vanLeerは分母が0になっても構わないので使いやすいと思われます。
その他の制限関数は海外のWikiに載ってます。

2013年6月22日土曜日

名称未設定

TVD法のうち、流束制限関数に関して、ソースを晒したいが、まとまってないので、躊躇してます。

そのうちに。QUICK法とかLaxWendroff法とか、今日ではあまり使わないかもしれませんが、非常に勉強になります。

スキームはこだわりを持って使いたいものですね。
「解ければ何でも良いじゃん!」
はちょっと、バカすぎます。
その場合、1次精度のみでロバスト性を求めるだけで良くて、ぼーっと格子点が増やせるハードが出てくるのを待っているだけです。

CIP法(CSL系)が一番好きですが、既存のコードに対して、フラクショナルステップを使って、移流項のみ改善したい場合は、既存のオイラリアンのスキームの方が良いみたいですね。

ゼロから書くなら、CIP法+その他の項があれば完全陰解法にします。
ロバストかつ高精度。


2013年6月21日金曜日

Xojo先ほどの続き

  とりあえず、Actionに下記ソースを加えると、ファイルへ出力できる

 'ファイル出力用
  fout=GetFolderItem("output.txt")
  txtout=fout.CreateTextFile
  txtout.delimiter =Chr(13)
  for i =1 to ixmx
    txtout.WriteLine str(f(i))
  next i
  txtout.Close

LaxWendroff法とXOJO

  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-1
      '1次風上
      fn(i) = f(i) - u*dt/dx *(f(i) - f(i-1))
      'オリジナルLaxWendroff法
      fn(i) = f(i) -u*dt/(2.0*dx)*(f(i+1)-f(i-1))+0.5*u*u*dt*dt/dx/dx*(f(i+1)-2*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年6月11日火曜日

xojo

皆さんxojoしか興味ないのか・・・。

がんばってソースを晒します。

今、Lispなんですけどね。注目は。

MsgBox "Hello,World !"

お決まりですが、必ずチェックしちゃいますね。

2013年6月9日日曜日

xojo

インターフェイスに慣れないです。。。
でもやっぱりMacでもWindowsでも同じ感覚で使えるのが良いですね。
うまくCSVに吐き出せないのは私の勉強不足です(笑)

なんとか会社に買わせたい。。。

2013年6月8日土曜日

Xojo

移流方程式を修正しつつあります。
今のところ、TVDQUICK、TVDMUSCL。
あとはLeapFrogも予定しておきます。
しばしお待ちを。明日にでも整理します。

技術屋

民主主義、わらりやすい説明、低コスト、精度向上。

低コスト。これは 異論を挟まない。
精度向上。これも異論を挟まない。

ただし民主主義と分りやすい説明。
これは一部同意しかねます。

専門家は、一般市民出来ない近似精度とコスト感覚のバランスを取るのが大事です。
ただ、その説明は非常に難しい。
さぼってる訳ではなく、先人たちが一生かけてきたことを数年で理解し、他人に説明することなんて無理なんです。説明相手も勉強する余裕がないんです。

だから、専門家は必ず自浄作用をもって、大きく間違わない方向の精度を提示した上で、納税者を納得させるのが必要だと思います。

加えて、一般市民(業界外の方々)に対して、しつこく説明すべきだと思います。そうしないと、技術屋は必ず減ります。魅力がない。やったことが、「税金の無駄遣い!」。
それが世論で、政治家がそれをよしとするなら、誰も目指さないし、下手したら、海外に技術が流出します。自国のグランドデザインを国の民間事業をうまく制御できなれば、荒廃がひどいことになります。

それを受容するだけの納税者がどれだけいるのか?
国家のために自分が何が出来るのか?
真剣に考えましょう。

専門家、非専門家、「そしてそれを短絡的に報道するマスコミ」みんな協力しましょう。信号なくなるかもしれませんよ。道路だって平気で壊れっぱなし。「仕方ないよ。お金内んだもん」あり得ないですね。日本という国家がどんな検討ツールとしての武器をもち、一技術者としてどのような判断が必要なのか。関係者の皆さん、お金を引っ張ることだけなく、グランドデザインとして、日本という国家がどうあるべきなのか?考えましょう。その検討のためにどのような勉強が必要なのか、それを勉強するのが専門学校だったり大学だったりします。

みんな得意、不得意は必ずあります。それが最適化されてるとも思いません。

日本のみなさん、選挙に行って、どう考える、悩みましょう。