LTspiceで複利効果や計算を体験してみる
こんな記事を読んでくれる人がいるかはわかりませんが、世の中、NISAで資産運用が盛り上がっていますが、LTspiceを使って何か体験できないかと思い実験してみました(笑)
72の法則
そこで、エクセル等を使えば簡単に計算できますが、LTspiceで複利計算をし、複利計算で良く使われる「72の法則」もLTspice上で再現してみたいと思います。
この法則は
「金利のパーセントで72を割ると複利で運用したときに”倍”になる大体の時期が分かる」
複利計算とは金利をRとすると(1+R)を「y」回、掛けた結果が2倍になる時期で表せます。
(1+R)・(1+R)・(1+R)・・ ・・(1+R)=2
ここからは対数を使用して近似計算をすることになりますが、簡単に結果だけ書くと
y→→ 0.72/R=72/(R*100)
R*100が丁度「%」で表した年利に相当します。
複利計算を行う
上記の数式からわかるように複利計算をするには同じ処理を繰り返し行う必要があります。ソフトウェアなら「for …. next]などで簡単に構成できますが、LTspiceでハードウェア的に構成するとちょっと複雑になりますが、ここではサンプルホールド回路を使って構成してみます。
LTspiceの回路
実際の部品でもほぼ動くと思いますがOPアンプとスイッチ回路は理想的な素子を使ってます。
複利計算のためのサンプリング回路
左側が複利計算回路です。サンプルホールド回路のタイミングは繰り返し周期が丁度、1年毎に行われます。
ちゃんと動作しているか見てみましょう。設定は2ヶ所で
APR=10 →年利10%の意味
year=10 →計算期間の意味
として走らせてみましょう。1年毎に金利が10%ずつ上昇していることがわかります。1年は12ヵ月なので時間軸は0.12ms毎にサンプリングできるようになっています。見やすいように「1month→0.1ms」になるようにサンプリングタイミングを合わせています。
金利の均等割り回路
金融の専門家ではないので実際に正しいのかどうかわかりませんが、1年間の金利は均等割りします。そうしないと年度の途中では金利計算ができなくなってしまいます。
この計算は回路図の右側の回路を使います。均等割りの1年間は直線で増加するので以下の原理で構成します。
Q=CV Q/Δt=i
1年間で貯まる電荷Qは1年間で上昇する電圧(年利に相当)と貯めるコンデンサーC3で求められます。後者の式に代入すると
i=CV/Δt=120p*(month-Vin)/120u
開始のコンデンサーの初期値は1Vにならないといけないので
.ic V(Vinit)=1 V(Rate)=1
でそれぞれ設定しておきます。この条件で計算すると見た目きれいな連続曲線(赤線)になります。
72の法則の再現
複利計算回路に「72の法則」を電圧源で再現してみます。単純に電圧V3=2Vを入れただけですが、グラフ上で重ね合わせて、金利曲線(赤線)との交点の電圧を確認するとほぼ0.8723msになりました。
0.8723/0.12=7.27 →7年
0.12/(0.8723-7*0.12)→3.7月
72の法則の計算では72/10=7.2、小数点以下は十進数なので1年は12か月として換算すると 12*0.2=2.4 →7年+2.4月
ほぼ同じになりました。私の金利計算が正しければLTspiceの結果の方が正確に近いと思います。
LTspice上の注意点
今回、複利計算回路を構成するときにいろいろ失敗もしました。
①最初の失敗はサンプリングパルスの発生回路でした。遅延したサンプリングパルスを発生させるときに、ビヘービア電源のdelay関数を使って発生させると上手く行きませんでした。分解能が自動設定のため波形がなまってしまうことで悪影響がでたようです。
対策は過渡解析の「.tran」でMaximum Timestepで疑似的に分解能を向上させると上手く動きましたが、計算時間が遅くなるので諦めました。
②コンデンサーに充電させる電流源は段階的に変化するため、変化点でヒゲが出て上手く行かないかと悩みましたが、コンデンサーを接続して積分器を構成するため実用上は問題なく動作させることができました。
感想
LTspiceでアナログコンピュータ的な動作をさせてみたのですが、デジタル的な動きを入れると想定外の動きが発生してちょっと大変でした。
あまり役に立たない実験とはわかっていましたが、金利計算の動きが実際の動作として確認できることが少し感動しました。
添付ファイル
ここで使ったLTspiceの回路図で、パラメータ設定はAPR(%)とyear(年)の2ヶ所のみです。
最後まで読んでいただいて有難うございます。 コメントは今後の参考に、フォローやサポートは今後の励みになります。