Loading [MathJax]/extensions/tex2jax.js

2025年3月29日土曜日

モナドの活用

 Haskell入門 を久しぶりに読み直してみた。P168にMaybeモナドについて少し復習してみた。

getItemWithMonad menu category name =do
  subMenu <- lookup category menu
  price <- lookup name subMenu
  return (category,name,price)

途中、Nothingを記述しなくても自動的に、該当しなければ、最後はNothingになる。うまくできていると思う。
これを、手続き型言語で、実現しようとすると条件分岐に頼らざるを得ないけど、その必要もない。
このへんが、関数型言語のモナドの強みなのかもしれない。

2025年3月14日金曜日

ルベーグ積分 理論と計算手法 P199

 補題9.13(2)でまた、つまづいてしまった。仕方なく、だめもとでChatGPTに頼ってみたら、きちんと回答してくれた。AIの力も凄いものだと驚きました。ここ何か月間の間にパワーアップした?

 質問は 「ルベーグファトウの定理を使い、∫A  max k≦n fk μ ≦ ν(A)  から ∫ sup n∈N  fn  μ ≦ ν(A)をいえますか?」としました。 回答に少し補足を入れてまとめてみた。

∵) gm=max k≦n fk  (これは増加列 ①)として   定理を適用すると

∫A  lim inf n→∞  gn  μ ≦ lim inf n→∞ ∫A gn μ

左辺は  ∫A sup n∈N fn μ  ②                       ↓ここで①を使う

また sup n∈N inf k≧n gn  = lim n→∞ inf gn=lim n→∞ gn  =sup n∈N fn   これが②の理由

∫A gn  μ ≦ ν(A)  で n→∞ ならば  lim inf n→∞ ∫A gn μ≦ ν(A)

ゆえに 結論  ∫A  sup n∈N fn μ ≦ ν(A)

定理に必要な優関数がないので、質問したら、優関数はf1(x)という回答。専任の家庭教師がついているような感覚になる。

2025年2月20日木曜日

Σsinkx/k の求め方で苦戦

 ルベーグ積分 理論と計算手法 P183 例8.9(1)で、


Σsinkx/k=(π-x)/2  (2π>x>0)になる理由がわからず、苦戦。

log(1-z)を微分し -1/(1-z) = Σz^n なので

積分して  log(1-z)=-∫Σz^n dz =-Σ∫z^n dz  = - Σ z^(n+1)/(n+z) 

 = - Σ z^n/n  (Σが n=0からとなっていたのをn=1からとすることで変形)

これを使うと

Im(log(1-e^ix))=-ΣIm(e^ixk)/k   = -Σ sin kx /k

これは arg(1-e^ix)=-(π-x)/2 (0<x<2π) でもある

∵)log(re^ix)=logr+log(e^ix)=logr+ix

∵) 1-e^ix=(1-cosx)-isinx      r=√((1-cosx)^2+sin^2x =2sin(x/2)

 -sinx / 2sin(x/2)=sinΘ なら Θ=-(π-x)/2になる。

∵) 2sin(x/2)sin((π-x)/2) = sinx  このへんは地道に三角関数の計算を確認すると

  確かにそうなる。それにしても計算が大変だった。

フーリエ級数使うともう少し楽に計算する方法もありそうなので、そちらも試してみたい。

追記(2/22):その後、ディリクレージョルダンの定理(P182)を使うと、計算できることが確認できた。

f(x)=-x/(2π)+1/2*sgn(x) として bk=1/kとできるので、これを定理に適用するといいようだ。最初うまくいかなかったのは、ちょっとした計算ミスのためだった。だいぶ遠回りしてしまった。

ついでに、(2)も解いていみた。

x∈(-2π,2π)を x'=x/2∈(-π,π)とすると  2Σsin2kx'/2k=Σsin2kx'/k=-x'+π/2*sgnx'

(1)より 2(-x/2+π/2*sgnx)=2Σsinkx/k=2( Σsink2x/2k   + Σsin(2k-1)x/(2k-1) )

=-x+π/2*sgnx  + 2*(求めたい式)となるが、これを整理すると

 求めたい式= Σsin(2k-1)x/(2k-1)=π/4*sgnxとなる。

PC用CW発振器(ツインT型)作成

 peanutでは、PCでCW交信ができるようになっているが、そのための発振器を作ってみた。最初、2SC1815と2SA1015を組み合わせた簡易的なものを試したが、周波数がうまく変えられなかったので、ツインT型を試したらうまくいった。入力はUSBへの変換アダプタを使うことにしている。

以前作成したPICによるキーヤーのコレクタ部分に上記回路のアースを接続することで、うまく動作させることができた。

追記:送信練習用に、以前作ったモールスデコーダにもつなげるようにしてみた。ただ、音量が不足していたので、こちらのサイトを参考させていただき、一石のアンプを追加した。マイクを通さず、デコーダにつなぐと、雑音の影響がなくなり、ほぼ100%の認識率になるようです。送信練習にはとても役立ちます。


2025年1月28日火曜日

JMoocに少し挑戦してみた

  無料の大学講座JMoocに興味を持ち、少し勉強してみた。修了証もらうまで行く人が1割ということらしい(無料ということとも影響している?)。単元テストは計算力を必要とされる問題が多く時間がかかった。

 抵抗2つ、コンデンサ2つを並列や直列組み合わせた回路で、抵抗値が流れる電流に影響しなくなる条件を求めよという問題や、交流回路の複素計算など、ちょっとしたミスがあるとなかなか解けなかったりする。久しぶりに、繁分数の式を変数に置き換えたり、〇.〇×10^△の形にして、少しでも計算が楽にならないか考えたり、LTSPiceなどPCの便利な計算に慣れてしまった昨今、逆に脳にはいい刺激になるかもしれないと思った。後半の三相交流の話になってくると、電力なども含めて考えると複雑になってきた。

 電気回路に続いて、電子回路も受講、電気回路が物理に近い内容で計算中心だったが、電子回路のほうほ工学的内容だった。後半は集積回路に組み込むために容量の大きなコンデンサを使わない回路の工夫について説明があった。MosFETなどHFリニアアンプの製作にもいろいろと役立つ情報があった。とりあえず、2つの講座ともなんとか修了できた。

2025年1月26日日曜日

中足骨骨頭痛

  以前から、歩くと靴の中に小石があるような痛みがあり、でも確かめると何もないという症状ががあり気になっていたが、よく調べると中足骨骨頭痛という症状らしい。足のアーチが弱くなるのが原因らしい。歩き方も踵に重心が来るように歩くといいらしい(足を前に出そうとするのでなく、上にあげてそのまま真下に落とすという感覚)。この症状が出ているときは、ウオーキングもほどほどにしたほうがいいようだ。

2025年1月25日土曜日

USB電力不足

  以前から気になっていたけれど、デスクトップPCのバスパワーUSBハブが電力不足のためか、マウス以外つなげない状態。試しに、ケーブルの途中に三又状態にして、余ったUSB充電アダプタとUSBプラグを使って5Vを追加できるようにしてみたらうまくいった(若干コネクタ部分の接触が気になる感じはあったが、PCからの経路すべてに接点復活材をスプレーしたらだいぶ改善された)。

 本来であれば、セルフパワーのUSBハブを購入すればいいのだろうけど、数千円はするので、余り物でなんとかできたので、少し節約はできたかもしれません。(というか、これ以上、5V電源アダプタは増やしたくなかったというのもありますが)