chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

お越しいただきありがとうございます。

このブログでは主に以下の内容を記載しています(自分の記録用)。

  • 何か作った話(自分は何かを作るために生きている..できたらクスっと笑えるものや、アートと絡みたい)(何かに手を出しても続かず、飽きるのが問題)
  • 音楽(AerophoneやDTM(FL-Studio))を勉強しようと思ったが、音楽はレッスンが続けられないので、、絵に転向しようとしたが、DTMに戻った(が、悶々とするだけで何も作っていない)
  • 趣味のロードバイク(坂道をひーこら走ると結構大変な人生(笑)と重なる。。その後、定年・再雇用で仕事のストレスが軽いのでほとんど走っていない。。いかん)

記事が渾然一体となってカオス状態ですが、マイコンのプログラムも、ちゃりで走るのも、料理するのも、自分の中ではそれぞれが繋がっているので、カオスな日常をそのまま反映させています。リンクや引用はご自由にどうぞ。質問等ありましたらコメントに書いてください。微力ながら自分の分かる範囲で回答します。
とにかく、、人に「あほやなぁ」と言われる事に精進するのが我が人生。へこんでも創造の力で進みたい
■2023年修正
当初は「あほ道」を進む予定だったが、「あほ道」は情熱と強い信念がないと進めない。自分は歳と共に情熱が落ちてきた。残りの人生は「ワクワク」や「面白い」ものを追いかけたい。ワクワク+面白体験に人生残りの時間とお金をかける*1
定年再雇用後はこれまでの仕事を少し減らして、プログラミング学習の支援活動を行う予定(愛想悪くて生徒様からチェンジ要望が出されるかもしれないが)
■2024年目標再設定
これまで仕事とか趣味はデジタル分野であった。アナログ回路とか電磁気は全く分かっていない。残りの人生は、微積電磁気学、ベクトル解析?を学んで、音、音楽、波形、FFT、アナログ回路、フィルタ回路、アンプ設計等、アナログ方面の理解と作成に取り組みたい。それに、、(来るか来ないか分からいけど)量子コンピューティングは量子の挙動を行列で表現して演算するらしいし。。ちょうどいい。

*1:ちなみに7月で定年・再雇用

RPiにMathematicaを入れてみる

取り組み:RPiにMathematicaを入れてみる
結論:パッケージインストールで何の問題もなくインストールできた
詳細:
微積をやりなおそうとしていて、証明を追いかけるだけでなく、グラフとか微積が本当にそうなるのかをプログラムでも確認できたら理解も深まるかと思った。Pythonで検算するのもいいけど、餅は餅屋ということで、、Mathematica等の専用言語の方がいろいろ便利ではと思えた。が、、Mathematicaは趣味で使うとしても、年度支払いで結構高い。一方、RaspberryBi版だと無料らしい。そこで、RPiにMathematicaを入れてみる
ドキュメントに従って試行錯誤してみる

sudo apt-get update
sudo apt-get install wolfram-engine

上記のインストール作業でエラーもなく一発で入った。MathematicaGUI/CLIが使えるらしいのだが、試しに動かしてみると問題なくグラフも描画できた。ずっと使えそうなので、試用期間に縛られずゆっくり勉強できる。


ちなみに、、今動いているOSは、Debian GNU/Linux 11 (bullseye)

$ cat /etc/*rel*
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

すこし知恵がついてきて、、複数関数の描画

Plot[{Sin[x], Cos[x]}, {x, -Pi, Pi}]


文法を知る必要があるという前提はあるけど、こんなグラフがサクッと描画できるのはすばらしい
MathematicaCLI(バッチ)でも動かせるようだ。

$ cat wave.wls
graph = Plot[{Sin[x], Cos[x]}, {x, -Pi, Pi}]
Export["wave.png", graph]
$ wolframscript -file wave.wls

上記の操作で、PNG形式の波形がファイルに出力される。なお、14秒かかる。これはさすがに遅い。RPiで14秒かかったので、PCでも試してみた。PCだと42秒かかった。なんと。。NotePCなのでゲーミングPC程の性能はないとしても、これは非常識に遅いのではないだろうか*1
Mathematicaは数学用途のすごいソフトだと思うが、自分のようなちょっと使うだけだとオーバースペックで能力を生かしきれず、むしろ初動に時間がかかり。。。って、Mathematicaをタスクとして常駐させてWebサービスのLambda風に使えるとかなんとか*2。。
CLIで対話的に操作して、関数を定義、グラフを出力した例

■参考URL
https://projects.raspberrypi.org/en/projects/getting-started-with-mathematica/2
https://community.wolfram.com/groups/-/m/t/418132
Plot: Visualize or graph a function—Wolfram Documentation
Vector Visualization—Wolfram Language Documentation

*1:13th Gen Intel(R) Core(TM) i7-1370P 1.90 GHz これがスペック高いのか低いのか分からない。1.9Gってちょっと遅い気もするが

*2:よく読むと、自分のPCにタスクを常駐させるのではなく、本物のCloudServiceのようであった

Mathematicaは微積の勉強に役立つ?

フーリエ級数の勉強をしていて、sinΘとsinΘを掛け算して積分したら非0だが、sinΘとsin2Θを掛け算して積分したら0になる・・元の関数f(x)に含まれる波(sin/cos/nΘ)を知りたかったら、調査したい波を掛け合わせて積分して0か非0かで判断できる・・的な説明があって、Pythonでプログラム組んでみようと思った。でもまぁどうせなら、PythonやらPyplotで試行錯誤するのではなく、Mathematica等の数式処理システムの方がサクッと動くのではと期待。微積も一発だろうし、グラフも出るようだ。しかも、Mathematicaは基本Lispらしく、ちょっと仕様を読むとカッコの沼らしい。Lispは好きな言語で、カッコの沼にずっとズブズブなので、これはこれでいいのでは?と思い、まずはお試し版をDLしてみた。
ちなみに、家庭・趣味用で使う場合は、Premium Planで¥24,800/年だ。これはあまりに高すぎる。素人なのに月2千円も払うとは。一方で、RaspberryPy版は無料で使えるらしいので、そっちを使ってみるか。。
いつものことながら、またそのうち飽きてしまうのかもしれないが、Mathematicaのtutorialで勉強して、sin/cosのグラフを描画したり、さくっと微積の計算ができるようになりたい。(お試し版の有効期限は15日。自分が集中していられる時間もそれぐらいかも。)
お試し版を契約するとCloud版のMathematicaも使えるようで、とりあえずSinのグラフを描画してみた

元のf(x)に含まれるsin(Θ)を掛け算すると、積分値は非0であると(下記図の上は確かに正の値のみ)。含まれないsin(4Θ)を掛け算して積分すると0になるはずなのだが(下記図の下側のグラフ)。。面積見るだけだとこれが0になるのかどうかちょっと分からず

積分関数を使って面積を算出しないとちょっと見るだけでは判断つかない
Mathematicaでは積分関数も用意されていて、、以下のように書くと、Cos(x)に対して、0-Pi/2の区間積分してくれるらしい。この手軽さはすばらしい。

Integrate[Cos[x], {x, 0, Pi/2}]

どうせなら、関数を定義してからIntegrateを呼びたい。。
sin(4Θ)が含まれるかを確認するため、sin(4Θ)を掛け算する関数(定義した関数名がf(x)なので若干混乱)を定義して、積分してみた

結果は0となり、元の波形にはsin(4Θ)は含まれないことが分かった(ということと理解)
全く知らない人間がプログラムをインストールして少し調べて数時間で、波形表示、積分までできるとは、さすが専用ソフトはよくできている。
ちなみに、関数定義とは、以下と書かれている

Wolfram言語では,関数定義は,パターンに対する変換規則を与える割当てのことです.

スコープ等の概念はなく、文字列置換して実行されるだけ。。。ということのようです。
■参考URL
解析学の勉強をはかどるために使ったツール #Mathematica - Qiita
Wolfram + Raspberry Pi Project: A Wolfram Engine on Every Raspberry Pi
Wolfram言語チュートリアル:プログラミングの基本
Wolfram Language & System Documentation Center
関数定義 | Wolfram言語プログラミングの基本
科学計算基礎
JSONata およびアセンブリー・アクション

メモ:Udemyの分かりやすいコンテンツ「イメージでわかる電磁気学 - マクスウェル方程式 」

基本的には理論の積み重ねで理解すべきなんだろうけど、まずはざっくりと電磁気学ってどういうものかを理解したい(抽象的、感覚的に)。YouTubeでもいろいろ解説ビデオがあるのだろうけど、Udemyの「イメージでわかる電磁気学 - マクスウェル方程式 -:社会人になってから学ぶ物理学(中級編)」が自分にとっては分かりやすいと思った。
なぜ分かりやすいか? マクスウェル方程式を正面から取り上げている。数学的な解説も少し入っている。(今まだ途中なので、追って記載)

■メモ
cygwinでesptool.pyを入れようとしたらcryptographyをビルドしようとしてエラーになった。

Building wheels for collected packages: cryptography

workaroundとして、cygwinpython-cryptographyパッケージを入れるとcryptographyのビルドは行われずesptool.pyが入った


「電磁気学」に関連する記事一覧 | 学びTimes

村上雅人氏による「なるほどベクトル解析」を買った→めちゃ分厚い

感覚で分かるような事が書かれていたので気楽に村上雅人氏の「なるほどベクトル解析」を買ったのだが、届いた本はハードカバーで自立できるぐらいの分厚い本であった。金額は2800円。立ってしまう程の参考書ってそうそうないですよね。。

内容を少し読んだだけですが、丁寧に式の展開が書かれていて、詰め詰めではないので、これ一冊しっかり証明を追いかけつつ、例題もこなすとベクトル解析の基本は理解できるのではないかと期待。
「なるほどベクトル解析」において、以下は内積の例です。仕事Wは、F*距離であり、引っ張る力(方向と大きさ)のcosΘが実際の仕事に寄与した力という説明です。なるほど。。

ここ数日、ベクトルを改めて勉強していると、実は生活の周りはベクトルで溢れていて、何も特別なものではなく生活に密着していると思ったのでした。
総ページ数300枚の大作なので全部終わるのには時間がかかりそうなのだが、、土日特に何をしないといけないということもないので、当面は数学と電気の独学(ベクトル解析→微積?→電磁気学→アナログ回路設計)に取り組んで、その後アンプ製作(デバイス測定→アンプ設計→シミュレータによる回路検証→アンプ製作)に進みたい。

ベクトル解析を理解したい→「高校生からわかるベクトル解析 」を買った→普通に難しい

元々は、真空管アンプを自分で設計して作りたいというのが発端で、回路設計するには、コンデンサやコイルに関する計算式が分からないといけない。式を理解するには電磁気学か?となって、電磁気学の勉強を始めると、基本はベクトル解析らしいと分かり、ベクトル解析って全く知らないと認識した。
大学の講義レベルの本格的な本を買っても理解できないだろうから、、おおよそどんな物かを感覚で理解できる本から始めた方がいいかと思い、「高校生からわかるベクトル解析 」を買った。数ページ読んだだけですが、、「ベクトル解析は特別なものではなく、一例として、高校物理で学んだ斜面に置かれた物質が力が釣り合って落ちない件」と書かれていて、あぁそうか。あれもベクトル解析か(もちろんスーパー初歩ですが)と納得したのでした。また、ベクトルとスカラーの違いって何だっけ?とおぼろげだったのが、「ベクトルとは、大きさと向き」、「スカラーとは大きさだけ」と明記されていて、これもまたすっきりしたのでした。根気もないし、頭悪い自分には、一発で説明してくれる分かりやすい本がありがたい。この本への期待は・・・内積って式は分かってるけど、内積が一体何を表しているのか理解できず(おおよそ、ベクトルAをベクトルBに投影(cosだから)した何かという程度の理解)、内積についても納得できたらうれしい。

■追記
ちょっと読んでみたが、これは決して簡単は本ではない。証明等は自分でも書き写して一行一行追いかけないと単に読んでるだけの本になってしまう。だからまぁ最後までしっかり読めたら知識も深まるとはいえるのだが。。偏微分も出てきて、「高校生からわかる」というのはちょっとちがうのではなかろうか。スーパーサイエンスハイスクール(SSH)の生徒だったら分かるのかも。内積については、「仕事量とは力(F)*移動量(S)であり、斜め上に引っ張る力で物体が移動した時の仕事量とはFcosΘ * S」が紹介されていて、あぁそういう所にも内積が使えるのねとは理解したが、そもそも内積とは何なのか?はわからずじまいであった(内積と仕事量は同一ではなかろう)。まずは感覚で理解できるかもと期待して、村上雅人氏による「なるほどベクトル解析」も買ってみることに。(すぐに飽きる性分なので、あれこれ本を買うだけ買って放り出すのでは・・と恐れる)
■追記
「高校生からわかるベクトル解析」をさらに読んでみて、、難しいことは難しいのだけど、数式を証明して終わりにするのではなくて、どのような局面で式を使うとどのような効果が得られるのか?が書かれており、リアリティのある解説というか、自分化しやすいというか、そういう印象を受けました。