NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

非線形カーブフィットについて

非線形カーブフィット(LM法)について質問ですが、プログラム実行後に係数aのサイズが変わっても
解を求めることができますでしょうか?
例えば、制作途中のモデルですが添付ファイルで送りましたモデルのような係数は求めることが
できますでしょうか?
0 件の賞賛
メッセージ1/7
4,829件の閲覧回数

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のサハと申します。

お客様のご質問をよく理解できなくて申し訳ありませんが、VIを実行後には
Forループの外にある配列”a”のサイズを変更してもそれはループ内には
入りませんので、結果には影響がないということになります。VIを実行する前に
設定されたaの値によって、ループ内で計算が行われます。これはForまたはWhileループの性質です。

お客様の問題は上記の回答と違う場合、お手数ですが、問題点を明確にしてもう一度ご連絡頂けますよう御願いします。

サハ|技術部|日本ナショナルインスツルメンツ

 

0 件の賞賛
メッセージ2/7
4,818件の閲覧回数
返信ありがとうございます。
こちらの説明が不足しておりましたので補足します。
非線形カーブフィットを使用したプログラムで”入力マトリックスが単一のため、方程式の系が解けません”という
エラーメッセージが表示されます。原因を調べたところ係数aの与え方に問題があるのではないかと考えました。
実際のモデルを添付しますので、もし原因がわかりましたら教えて下さい。
0 件の賞賛
メッセージ3/7
4,809件の閲覧回数

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のサハと申します。

添付して頂きましたmodel.viにある”a”配列の要素数と同じ要素数の初期係数の配列が必要です。念のために、以下のサンプルVIをご参照ください。

C:\Program Files\National Instruments\LabVIEW 8.0\examples\math\curvefit.llb\Nonlinear Fit Lev-Mar.vi

上記のVIのブロックダイアグラムを見ていただきますと、”a”配列の要素は3つ(a,b,c)ですので、れーベンバーグマルカートVIの初期係数の配列も要素が3つです。

以上の内容で何かご不明な点がある場合、お手数ですが、再度ご連絡頂けますよう御願いします。

サハ|技術部|日本ナショナルインスツルメンツ

0 件の賞賛
メッセージ4/7
4,802件の閲覧回数
返信ありがとうございます。
 
a配列の要素数は同じサイズの初期係数の配列は与えているつもりですが、プログラムの作成方法が間違っているのでしょうか?
 
サンプルプログラムを確認しましたが、a配列の要素数は指標配列の指標が1,2,3まで指定しているから3つと判断できるのでしょうか?こちらで作成しているプログラムでは、プログラム実行後にa配列のサイズが決定するような仕様なので、モデルの中で指標番号を固定して呼び出すことができません。そこでモデルの中で指定する指標番号を変更できるようになっています。このような場合は、前記のエラーメッセージの原因として何が考えられるのでしょうか?
 
 
 
 
 
0 件の賞賛
メッセージ5/7
4,799件の閲覧回数
先日ご質問しました内容について、こちらで色々と試しておりますが解決しておりません。
何が問題なのかもわかりませんので、もし問題点がわかりましたらお教えください。
 
0 件の賞賛
メッセージ6/7
4,771件の閲覧回数

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のサハと申します。

お客様の場合の問題は、モデルVI中で使われている係数の数がレーべンバーグマルカートVIの初期係数配列の要素数が異なるために発生していると思われます。例えばサンプルVIでもこれらの数が異なるように設定してVIを実行して頂ければお客様の場合と同じエラーが出る事をご確認願います。お客様の場合、モデルVIの中で使われている係数の数はVI実行後に決まるようになっているということですが、モデルVIが実行されて係数の数が決まってから、それと同じ数の初期係数の配列をレーべンバーグマルカートVIに入れるようにVIを変更して頂ければ、問題は解決されると思われます。お手数ですが、もう一度お試し頂けますよう御願いいたします。

以上の内容で何かご不明な点がある場合、お手数ですが、再度ご連絡頂けますよう御願いします。

サハ|技術部|日本ナショナルインスツルメンツ

0 件の賞賛
メッセージ7/7
4,766件の閲覧回数