2020年06月01日

な、だから言ったろう、初心者向けの例題ばかりやっていてはレベルアップは難しいのだよよーーーん、なあぁにいぃ・・・気づいちまったな!!

4次R-K法で微分方程式を解く。数値解なのでアルゴリズムはわかっていてコードを書く。コピペでもいい。
dy/dx = 2π・cos(2π・x) を解く。解析階は y = sin(2π・x)である。よって数値解と解析階との差を出してみよう。
image

刻み幅 = 0.001の場合である。誤差が10のマイナス12乗より小さいので、まーそれはそれでいいのだが、言いたいことはそこではない。

C言語で計算してデータをファイル化、それをgnuplotで表示した。
例題は横軸10ぐらいで⊿t = 0.1 として実行。ほとんど瞬時で表示する。
ところがデータ数が増えると・・・
plot ‘data.txt’のdata.txtが8MBぐらいになるとgnuplotはしばらく応答なしになった。

そこだ。この手法では描画をするのに適していない。簡単な、つまりはデータ数が少ない時の確認用としては活用できる。データ数が膨大になったら この手法はよくない。最良ではない。

そこで思い出すのがwxMaximaであり、LTSpiceである。大量のデータがあるのに、描画が速い。そこに工夫がある。上のgnuplotは大量のデータを地道に真面目に表示している。細工はないのだ。

wxMaxima, LTSpiceに限らずだが、ここらの工夫は描画でのデータ間引きだろうと想像する。上の場合は⊿t = 0.001なので、gnuplotは0.001ずつのデータを地道に順番に描画するのだ。
それは元のブログラムとは関係ないからなあ。

そこだで。簡易的に描画はデータをファイルに落としてgnuplotで見ればいい・・・・と思っていた。ただ、それはデータ数が少ない時に有効であって。
データファイルが上の場合には8MBぐらいだが、それでも時間がかかった。20秒とか50秒とかの・・・ PCがポンコツなんでごめんね(笑)

数値計算のツールは微分方程式の数値解を求めてグラフ化するであろう。その場合にどのように工夫して描画を高速化しているか。間引くのだろなあと想像するけどね。

上の場合。横軸で⊿t = 0.001り意味はない。ベターと塗り潰されてしまうわ。なので間引いてもよい。その、間引くアルゴリズムってものがありそうだな。それは各社が工夫しているのだろうと想像する。アプリによって違うアルゴリズムだろうかもかもだ。

dy/dx = 2π・cos(2π・x) を解く。解析階は y = sin(2π・x)である。その差を上のグラフは示している。10のマイナス12乗のオーダーだから問題はない。。・・。という考え方はできる。だが、そこで段差がいくつかある。それはとのようにして生ずるのか?  そこを考えて理解できれば僕の数値計算に対する理解は相当に深まると信ずる。
G++でdoubleの計算だ。4次R-K法だ。コードはパクリだ(笑)
上の場合に、さらに計算を続けると発散するのか?  発散するとして どうして?  だ。誤差の蓄積が原理的にある・・・のは知っている。だが、それがどうして階段状の誤差として現れるのだ?
  
こういうものは考えると疑問は拡大する。doubleは60bitの倍精度の浮動小数点の表現だしなあ・・・・から始まる。4次R-K法事態は単純な数式だ。が、それがどうして、このような誤差の結果を生むのか?  うむうむ。そこだな。生むのか・・・ うむうむ・・・ 笑えよな

入門レベルの例題をサイト等から拾って来てVScodeで動かして、あ、動いた、・・・終わり。

というスタイルでは学習としては効率はちょ~低い(笑)

で、その、ちょ~低いレベルの例題はWebに膨大にある(笑) どうでもいいようなものは大量にある・・・インターネットはゴミの山である・・・・と 毎日、ゴミブログを書いているワシが言いましたよってに。

posted by toinohni at 17:58| 東京 🌁| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする

NPBの話題はこんなんばっかり・・・しーーん

http://www.zakzak.co.jp/spo/news/200601/bas2006010003-n1.html

3月に大人数で会食後、プロ野球界初の新型コロナウイルスに感染者となり、大騒動の主役になった阪神・藤浪晋太郎投手(26)。汚名返上のはずが、今度は練習に遅刻という大失態。球団内の数少ない擁護派もとうとうサジを投げた。

その判断を誰も非情とは言わないだろう。藤浪は5月28日に甲子園で行われた集合練習に遅刻。矢野燿大監督(51)はすぐさま話し合い、練習に参加させずそのまま2軍に降格させた。

----------------------------------------------------------------------------

   なんだかな。ネーチャンらと合コンで新コロに感染して話題になり、入院して退院して、今度は遅刻で話題になり・・・
遅刻ぐらいで なーーにが問題になるんかい 阪神。練習に遅刻であって、試合に遅刻ではないのだしよーーー。
昔、50年ぐらい昔、巨人の堀内は若手の頃、クソ生意気で関西での試合に遅れた・・という話もあるぞ。当時の監督は川上だ。まー、堀内がどう処分されたか忘れたけどなあ。

というわけで練習に遅れたぐらいで二軍落ちかよ。てか、遅刻は初めて・・・・ではなかったというからなあ。

というわけで、藤浪はパ・リーグにトレードってのがいいかも。テキトー。

posted by toinohni at 13:18| 東京 🌁| Comment(0) | 日記もどき | このブログの読者になる | 更新情報をチェックする

微分方程式の数値解を・・・・ 解くぜ、解くのだぜ、・・ しーーん

4次R-K法というアルゴリズムがある。大学等のサイトで解説やコードが出ている。個人のブログでも出ている。c/c++での例だけでなくPython + Scipy でもある。

で、自分でアルゴリズムのコードを書くたくない、コピペもヤダーの場合には。。。
Python Scipy のodeint() 使えばよい。
wxMaximaにも用意されている。
さらにGSL科学技術ライブラリーでは4次R-K法だけでなく改良版もいくつかあるようだ。
ほかにBoost:: oeint()というのもある・・・らしい。

そういうわけで、タダのライブラリーなら使おうぜ。。。。と思って調べているのだが、ちょ~難しいのである。それならば、コード書くほうが簡単だもんね、コピペだし。

なのだが、そういうコピペのアルゴリズムとタダのライブラリのと比べてみたいではないか。

と思いつつ。。。。停滞している次第である。だって。。。。。ちょ~

posted by toinohni at 11:49| 東京 🌁| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする

アフリカはタイヘンである・・・それは毎度の事で

不足を常と思えば不満なし。。。。などと言ってる場合ではない。

https://www.voanews.com/covid-19-pandemic/covid-19-could-double-africas-food-insecurity-wfp-chief-warns

ADDIS ABABA - The head of the World Food Program tells VOA the number of people suffering from acute food insecurity in Africa could more than double due to COVID-19. Executive Director David Beasley says the impact of the virus on the economy and the flow of supplies could affect more than 40 million people in East Africa alone.

The head of the World Food Program has warned a failure to keep food supply chains open during the onslaught of the coronavirus pandemic could result in more people dying of hunger than of the virus itself.

新コロ感染での死者数よりも食料不足で飢餓に依る死者数が多くなる可能性もある。特に東アフリカ諸国が要注意だ。
加えて紛争が日常茶飯事であり先日もソマリアでの自爆テロが記事に出ていた。西アフリカ諸国は今の所はバッタ被害の話はないようだがカメルーン、ナイジェリア等では紛争の記事が出ている。国境近辺では紛争が日常茶飯事かよ・・ ふん そう?   そうなの?   そだねぇ。

しかもアメーリカで黒人が白人警官に射殺された事件で おおいにデモが増えていて。食糧不足、バッタ危機、新コロ危機に加えて ムカッパラが立つ事が続いて タイヘンである。

まー怒りは大事だ。ガス抜きにもなる。

https://www.voanews.com/africa/agencies-step-aid-camp-fire-victims-eastern-nigerias-borno-state

   カメルーンとナイジェリアが紛争を抱えていると思ったが違った。ナイジェリア東端の地域で揉めているのだった。
Map of Borno state Nigeria


どうもよくわからないであります。どの部族とどの部族が何が原因で紛争を続けているのか?  そこらはの知識は僕はないであります。ただ、地図を見るとカメルーン、チャド、ニゲールとの国境に接している地域である。部族が違う、宗教が違う、植民地だったころの宗主国が違う、匂いが違う、声が違う、ごめんねーーー きょねんのひーーとーーとーーー
そこに新コロの感染危機がやってくる。紛争地帯から逃げ出した人たち数万人がキャンプで暮らしている。インフラ貧弱、衛生貧弱、加えて密集地帯だ。

Since the Boko Haram insurgency started in 2009, tens of thousands of people have been killed and 2.5 million have been displaced across the Lake Chad region.  This number includes 1.8 million inside Nigeria and the rest in Cameroon and Chad.

Boko Haram というのが悪い団体らしい。2009年から数千人が殺され、250万人が追い出された・・・・ うーーむ。ボコ・ハラムとは何者だ?
https://ja.wikipedia.org/wiki/%E3%83%9C%E3%82%B3%E3%83%BB%E3%83%8F%E3%83%A9%E3%83%A0
イスラム系であるらしい。イスラム教は派閥どうしで殺し合いするからなあ。アフリカで一番の過激武装勢力であるらしい。
こいつらはどこから武器を調達しているのだ?   そこだな。世界のどこかに支援する国があるのだろう。戦争、紛争で儲ける連中が。ちょ~ネオ・ブラックゴースト団だな。あむあむ。

posted by toinohni at 11:40| 東京 🌁| Comment(0) | 英語雑記 | このブログの読者になる | 更新情報をチェックする

Debuggerってものがあるらしいぞ なあぁにいぃ・・・見つけちまったな!

VScodeにはデバッグ機能があるらしい・・・うーーむ、ほーーー。
c/c++のコード書いて思うように動かない場合にはデバッガーを活用だ!!  らしい。

だがワテが書くプログラムは適当にprintf()入れてだな、途中の変数の値を確認すればOK。どうせ100行も書かないのだし(笑)
それで思い出した。30年以上も昔の話だが。CPU実装した装置等を開発する場合にICEというちょ~便利なツールがあった。今もあるだろけど。それ、ガバッとコネクタ等で基板上のCPUソケットにかまして、そのツールがCPUと同じように動く。。。。
In Circuit Emulatorという装置。当時はICEメーカーがたくさんあった気がする。NEC等の大手も扱っていたしソフィア・システムとかZAXとかのベンチャー企業も活躍しておった。
ただ、ICEは高い。貧乏な零細企業だと買えない。しかし、貧乏な零細企業はカネはなくても知恵があった。そこの技術者はICEなどいらんもんね、わし。って感じ。
ROMを100個ぐらい消費すればデバッグは終わるさ。。。 まー、修正してはROM焼いて試して、また修正してはROM焼いて試して・・・繰り返す。ICEなくても ぼくら へっちゃらー!!

   何を言いたいかと言うとな。ワテの場合もデバッガーなどいらんがな。途中にprintf()入れとけば十分だぎゃー(笑)

とはいうものの、タダのVisualStudio2019CommunityというIDEがありまして。何もVScodeで面倒な設定してデバッグ機能を使うって意味はボクにはないじょ!!
 
  そうは言いながら、某さんのWeb-SiteのC++入門を見ていたらGDBの説明があったりして。よっしゃー、GDBだぜ、やっば、コマンド叩いてだな・・・・・・

というわけです。

そのGDBがやっていることをGUIで表現するってのがIDEだ!!   IDEを使う前にGDBの概要を知っておくべきだ。どーたらこーたらだ。

実はさっき、VScodeのデバッグ機能に関して検索して試そうかなと思ったのだが、シチメンドイぞ、とわかったのである。IDEを使い球へよ、ちみぃ!!  なのである。わっはっはである。

posted by toinohni at 09:17| 東京 🌁| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする

おおい、ほい、をい!! ふざけてんじゃん マヌケ

https://news.yahoo.co.jp/articles/0e532f1b92208983394600eb1f626e608d18bc9d
【パリ共同】ベルギー王室のジョアキム王子(28)が5月下旬、スペイン南部コルドバを訪問し、交際相手の実家で新型コロナウイルス感染防止の人数制限に違反したパーティーに参加した後、ウイルス感染が判明した。両国のメディアが31日までに伝えた。 ジョアキム王子はフィリップ国王のおいで、スペインの富裕層出身の女性と交際。パーティーは26日に開かれ、27人が参加した。感染経路は不明だが、王子は翌日に症状が出て28日の検査で陽性が判明、参加者全員が隔離状態に置かれた。現地では15人を超す集会は禁じられており、警察の捜査対象ともなった。

------------------------------------------------------------------------------------
    こういうの、自業自得と言う(笑) マヌケすぎてワロタ。

ただ、王子は翌日に症状が出て・・・・というのは気になる。潜伏期間がある、と僕は考えているからである。つまり、王子の感染はそのパーティではなく数日前の別の・・・・という可能性があるからだ。
パーティの翌日に症状が出たのであれば王子の感染はそのパーティではない。だが、感染者の王子から感染拡大の可能性はある。参加者全員が隔離というのは妥当だが、王子の感染経路を明確にすべきである。プライバシーの問題になって公表はしないだろな。

スペインの富裕層出身の女性も感染していると想像するですね。

まー、重症化しないことを期待しますm(__)m

posted by toinohni at 07:56| 東京 ☁| Comment(0) | 日記もどき | このブログの読者になる | 更新情報をチェックする

VScodeで四苦八苦して たのしーーーといいのにぃ・・

Win 10 + VScode でg++を使う場合。計算して数字をズラズラと画面に出すのだが、これをファイル化してgnuplotで描画する・・・・

計算ブログラムを keisan.exe  としよう。
(PS)> ./keisan.exe > data.txt

  これでファイル data.txt ができる。そこで、VScode Terminalで gnuplot と叩いてgnuplot を起動。gnuplot で
> plot ‘dara.txt’ と叩くと描画する・・・・はずだったんだが(´・ω・`)
エラーが出た。1行目がどーたらとか言うとる。

検討した結果、data.txt が UTF-16LE になっている。あれれ、ここは UTF-8 のはずなのにい・・・・なんで変わったん?  いつから?  
wgnuplotはUTF-16では動かないことがわかった。Editor画面でutf-8にして保存するとwgnuplotは描画した。

で、リダイレクトの場合にどうして utf-16 になってしまうのか?  いつからそうなったのか知らないけど。以前は描画していたからなあ。

これはPowerShellの問題か、g++の問題か。知るかよ、である。ちなみに、PowerShellではなくcmd.exeで試したら描画した。utf-8だったし。
じゃあ、PowerShellの問題か?   以前は動作していたのにぃ・・・・

蛇足 リダイレクトしないでファイル書き出しでいいじゃん(笑) 3行ぐらいは書けよ。

いや、VScodeのエディターで文字コード変更して保存が一番ラクだがや。

で、どうして、リダイレクトでできたファイルが UTF-16になってしまうのかはワテわかりまへん。PowerShellの問題なのかg++の問題なのか、はたまたVScodeの問題なのか、ワテわかりゃしまんねや。
そのうちVScode更新したら症状が変わったりして・・・・ なむぅ   

posted by toinohni at 07:19| 東京 ☁| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする