特異値分解とかよく判らん

 騒音振動感覚補正も1/3OctBand分析も完成したので残る分野は建物の振動解析である。
RD法による減衰乗数を出すのは出来ているが、この方法はモードが隣接して1質点系とみなせない場合しか使えない。FDD法という特異値分解を使う方法だと行けるらしいが、行列を特異値分解して固有値固有ベクトルを求めるところまでは判るというか出来るが、これを振動モードを出すのにどう使えばいいのかよく判らない。

 調べるうちにRD法でも2質点系モデルとRD波形を最小二乗法からパラメータを求めて出していた論文を見つけた。やっていることは周波数応答上のカーブフィットと同じ事だろう。2質点以上でも原理上okな筈だ。まあ計算時間がとんでもなくなるだろうが。
 最小二乗法による1次直線や円を求めるプログラムは以前に作っているが、減衰波形みたいにcosとかeとか使っている方法は作った事はない。もっとスマートな方法があるのかもしれないが、単純にパラメータをステップさせて一番誤差が少ない時のパラメータを用いる事にした。
 とりあえず1質点系モデルから始めてみる。ピークは1つなのでそのままでRD波形から減衰乗数を求められるが、強制加振よりも誤差があるので、もしかしたらカーブフィットさせたら精度がよくなるかもしれない。
先ずは式を使って固有振動数2Hz、初期振幅1、減衰定数3%の減衰波形を作ってみる。
w=2*%pi*2
y=A*(%e^(-h*w*t))*cos(sqrt(1-(h)^2)*w*t+θ);

この1質点系モデルのRD波形を得た時にはwはFFTのピークから判るし、θは0の筈だ。不明なパラメータAとhの値を色々代入していって一番誤差が少ない時のAとhを代入してやればいい。
問題なのはこれが2質点系モデルになったときには不明なパラメータが倍になって計算時間はもっと増える。例えばパラメータ1つについて10回値を代入した場合、1質点系モデルだと10*10=100回だが、2質点系モデルだと10*10*10*10=10000回となってしまう。
 建物の減衰定数はある程度の値の範囲内だし、振幅もFFTのピークからある程度掴んで反復計算する範囲を極力小さくするしかないのかも知れない。