« すき家で牛あいがけ天津丼(ご飯大盛)を食す。私は酢が入ってるのが好きなのでこれは結構おいしかった。ミズクワイの食感も面白い。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年4月13日 BroadcomがWi-Fi 7のチップ群発表、IEEE Microwave Magazineでアンテナとしてリュードベリ原子を利用、6Gサミットは5月16日より、5G/6G部品の測定チャレンジ、ワコムのペンにルネサスのワイヤレス給電、など。 »

2022年4月13日 (水)

ExcelでLAMBDA関数が使えるようになった(16) ランベルトのW関数(Lambert W, z=W(z)*exp(W(z)))をREDUCEを使った反復計算で。ただし実数のみと主枝は0と-1のみ。

反復計算ができるようになったのでLambertW関数をやってみよう。

参考にしたのはKnuth先生たちの

On the Lambert W Function

ですが、複素数にするのがとても面倒だったので実数のみ&主枝は0と-1のみ。

LambertW(n, x)

のような形で、n=0, -1。n=0のときはx>-1/eで、n=-1のときは-1/e<x<0です。

複素数が計算したいときや任意の枝が欲しいときは別に作ったこちらを:

LambertのW関数 (第k解)

ではこんな関数です。

Lambertw_excel1

テキストファイルで:

LambertW = lambda(k,x,
            let(w_0, if(and(k=-1,x<0), -101),
                s, sequence(100),
                w_1, reduce(w_0, s,
                        lambda(w, dummy,
                            w-(w*exp(w)-x)
                            /(exp(w)*(w+1)-(w+2)*(w*exp(w)-x)/(2*w+2)))),
                w_1
            )
        );

こんな感じで計算できる。グラフにしたらおなじみのものが得られた。

Lambertw_excel2

これも案外実用的じゃないだろうか。

過去にやったもの:

ExcelでLAMBDA関数が突然使えるようになった。4段4次のルンゲクッタ法がワークシートだけ(VBA使わずに)で簡単に計算できるようになった。まずはローレンツ方程式を計算してみる。

ExcelでLAMBDA関数が突然使えるようになった(2) 5次のルンゲクッタフェールベルグ法でローレンツ方程式をワークシートだけで(VBA使わずに)計算

ExcelでLAMBDA関数が突然使えるようになった(3) LET、SEQUENCE、IFSと組み合わせてワンライナー(1セル)で数値積分(シンプソンの積分公式)を計算

ExcelでLAMBDA関数が突然使えるようになった(4) LET、SEQUENCE、IFSと組み合わせてクロソイド曲線を計算するオリジナルの関数を作る。セルに=Clothoid_X(A2)とか入れるだけで計算できる。

ExcelでLAMBDA関数が突然使えるようになった(5)なんと再帰まで使える。階乗とフィボナッチ数列で試してみた。

ExcelでLAMBDA関数が使えるようになった(7) 離散フーリエ変換(DFT=Discrete Fourier Transform)(修正版)と逆変換(IDFT)をLAMBDA、LET、SEQUENCE、MAKEARRAY、MAP、複素数関数(IMEXP,IMPRODUCTなど)を組み合わせてVBAも分析ツールもなしに関数として実現する。

ExcelでLAMBDA関数が使えるようになった(8) 4段4次のルンゲクッタ法をLAMBDAだけ(VBAもセルの計算も使わずに)で実現、RK4(t, x, y, z)だけで次の時間ステップが計算できるようにした。例はもちろんローレンツ方程式。

ExcelでLAMBDA関数が使えるようになった(9)リーマン・ゼータ関数ζ(z)をLAMBDA、REDUCE、SEQUENCE、複素数関数を組み合わせて=Zeta(1/2+2i)などで計算できるようにした。

ExcelでLAMBDA関数が使えるようになった(10) Sパラメータのような複素数データの実部・虚部のRIとデシベル、位相のdBを2列を選択するだけで dB2RI(範囲), RI2dB(範囲)でLAMBDA, MAKEARRAY,LETを使って相互に計算できるようにする。

ExcelでLAMBDA関数が使えるようになった(9の追記)リーマン・ゼータ関数ζ(z)をLAMBDA、REDUCE、SEQUENCE、複素数関数を組み合わせて=Zeta(1/2+2i)などで計算できるようにしたので、それをMAP関数を使って3次元グラフにしてみる。

ExcelでLAMBDA関数が使えるようになった(11) 複数のセルの並びから1つ飛ばしとか2つ飛ばしとかでデータを取り出す関数PickOut(範囲、何行ずつか、何列ずつか)を作った。よく変なデータの並びで取り出すのがめっちゃ困ることがあるので。

ExcelでLAMBDA関数が使えるようになった(12) VBAを使わずに複素行列の積、逆行列などをLET, MAKEARRAY, INDEXと実行列のMMULT, MINVERSEなどを組み合わせて実現する(IMMULT, IMINVERSE)

ExcelでLAMBDA関数が使えるようになった(13) 工程能力指数Cpkと平均と標準偏差、最大、最小、変動係数CVを一度に求める関数DataAnalysisを作った。=DataAnalysis(データ範囲, 上限値, 下限値)のようにつかう。

ExcelでLAMBDA関数が使えるようになった(14) REDUCEやSCANを使えば反復計算もできる、ということでニュートン・ラフソン法をやってみる。関数f(x)と導関数、初期値を与えると一気に計算してくれる。

 

ExcelでLAMBDA関数が使えるようになった(15) 円の弧長,弦長,矢高,半径のどれか2つを与えて残りを計算を反復計算用にREDUCE関数を使ってやってみる。弧長と矢高から弦長 (A1:A2), 弧長と弦長から矢高(A1:A2),弦長と矢高から弧長(A1:A2)のように日本語関数にしてみた。

 

 

« すき家で牛あいがけ天津丼(ご飯大盛)を食す。私は酢が入ってるのが好きなのでこれは結構おいしかった。ミズクワイの食感も面白い。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年4月13日 BroadcomがWi-Fi 7のチップ群発表、IEEE Microwave Magazineでアンテナとしてリュードベリ原子を利用、6Gサミットは5月16日より、5G/6G部品の測定チャレンジ、ワコムのペンにルネサスのワイヤレス給電、など。 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« すき家で牛あいがけ天津丼(ご飯大盛)を食す。私は酢が入ってるのが好きなのでこれは結構おいしかった。ミズクワイの食感も面白い。 | トップページ | 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年4月13日 BroadcomがWi-Fi 7のチップ群発表、IEEE Microwave Magazineでアンテナとしてリュードベリ原子を利用、6Gサミットは5月16日より、5G/6G部品の測定チャレンジ、ワコムのペンにルネサスのワイヤレス給電、など。 »

最近の記事

最近のコメント

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ