3次近似

7 件の投稿を閲覧中 - 1 ~ 7 件(全 7 件)
  • 著者
    投稿
  • #4359
    hymd
    一般参加者

    1)エクセルでは最小二乗法での3次近似を =INDEX(LINEST(Xデータ,Yデータ:C19^{1,2,3}),1,1)で3次の係数を求めることができますが、MZプラットフォームでは可能でしょうか?

    2)SampleのExelファイルアクセスでセル値を書き込む例を利用して、新たに作成した数値入力フィールドの数値をExelに出力してセル値は変更できているのですが、そのセルを利用した演算が実行されません。
    単独のExelでは、数値を変えると演算も同時に行うのですが、MZからの演算実行が必要でしょうか?

    以上2点書きましたが、3次近似はExelでできるのですが、数式実行をMZからできないので、併せて質問させていただきました。
    ご教授の程、宜しくお願いいたします。

    #4360
    hymd
    一般参加者

    先程の計算式は、=INDEX(LINEST(Yデータ範囲,Xデータ範囲^{1,2,3}),1,1)に訂正ください。

    #4361
    MZPlatformユーザー会
    サイト管理者

    ご指摘のように、2)についてはExcelファイルアクセスでセルの値を変更して、そのセルの変更を反映したセル数式の演算はMZ側で実行できません。やはり変更後の状態をExcelファイルとして保存して、数式が設定されたセルを再計算するような操作をしないと反映されないのが現状です。

    1)についてMZ側で独自に同様の計算をするためには、「最小二乗法」コンポーネントを使用します。なお、このコンポーネントはMZに標準的に含まれていますが、通常のメニューから追加することはできません。「コンポーネント追加」のメニューで「クラス指定」を選択していただき、
    jp.go.aist.dmrc.platform.beans.solver.PFLeastSquareSolver
    と入力していただくと追加することができます。

    最小二乗法を用いた多項式近似の方法については、恐縮ですが特にドキュメントがありませんので、こちらで作成したサンプルアプリケーションを添付します。基本的にはテーブルでデータを与えると文字列で近似した数式が得られるというものです。もし3次の係数だけ使いたい場合には、この文字列から係数を切り出す操作が別途必要となります。

    添付ファイル:
    #4363
    hymd
    一般参加者

    ご回答ありがとうございます。
    最小二乗法のコンポーネント追加できました。また、サンプルプログラムを実施し3次近似を行うことができました。
    サンプルプログラム内に、最小二乗法を用いた例(多項式近似計算、対数近似計算、指数近似計算、塁上近似計算)があり、今後活用させていただきます。

    #4364
    hymd
    一般参加者

    追加になりますが、
    3次の係数だけ使いたいのですが、この文字列から係数を切り出す操作で各係数を得ることはできました。その係数に於いて、1.0242268*10^(-4)となった場合、文字列を数値化することができません。ご教授ください。

    #4365
    MZPlatformユーザー会
    サイト管理者

    ご指摘の通り、MZでは多くの文字列表現から数値型への直接変換が可能なのですが、累乗表現は直接変換ができません。この場合は、関数電卓コンポーネントを用いることで、数値型に変換することが可能です。

    関数電卓コンポーネントは「処理部品」の「演算制御」に分類されております。
    サンプルアプリもMZ本体に含まれていますのでご参照ください。

    今回の例では、メソッド「計算式を設定する(String)」で変換したい文字列を指定して、続いてメソッド「計算を実行する()」を起動すると、戻り値が数値型として得られます。

    #4366
    hymd
    一般参加者

    無事、数値化することができました。
    ありがとうございました。

7 件の投稿を閲覧中 - 1 ~ 7 件(全 7 件)
  • このトピックに返信するには、ログインしてください。