ホームページ  >  記事  >  コンピューターのチュートリアル  >  最小二乗法を使用して、べき乗関数 y=a*x^b と指数関数 y=b*exp(a) を近似します。

最小二乗法を使用して、べき乗関数 y=a*x^b と指数関数 y=b*exp(a) を近似します。

WBOY
WBOY転載
2024-01-16 16:51:111206ブラウズ

运用最小二乘法分别进行乘幂函数 y a x^b指数函数y b expa

最小二乗法を使用して、累乗関数 y a x^b 指数関数 y b expa xqu を乗算します。 #xx=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];

y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];

最初のものを当てはめます:

関数 f = first(c, x, y)

f = y - c(1) .* x .^ c(2);

first.m ファイルとして保存します。

コマンドラインから実行:

c = lsqnonlin('first', [0 0], [], [], [], x, y);

a = c(1)

b = c(2)

2 番目のフィッティング:

関数 f = first2(c, x, y)

f = y - c(2) .* exp(c(1) .* x);

first2.m ファイルとして保存します。

コマンドラインから実行:

c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);

a2 = c2(1)

b2 = c2(2)

MATLAB を使用して最小二乗近似を行う方法

polyfit 関数を使用します (多項式フィッティングの場合、最小二乗法が使用されます) ###例えば### #xx=[90 91 92 93 94 95 96];

z=[70 122 144 152 174 196 202];

a=ポリフィット(x,z,1)

###結果:###

a =

1.0e 03 **

0.0205 -1.7551

1 は次数 1 の多項式を表します (次数 1 の場合は直線となり、状況に応じて適用されます)

a は多項式の係数ベクトルであり、高次の項から低次の項まで並べられています。

結果を使用したい場合は、たとえば、x=97 のときの z が何に等しいかを知りたい場合です。

次に、2 つの方法があります。

係数を直接使用する

>>a(1)*97 a(2)

ans =

233.4286

または、polyval 関数を使用します

>>ポリバル(a,97)

ans =

233.4286

最小二乗法の適用? ?

最小二乗法は、二乗誤差の合計を最小限に抑えることによって、一連のデータに最もよく一致する関数を見つける数学的最適化手法です。

最小二乗法は、二乗誤差の合計を最小限に抑えながら、絶対に未知の真の値を取得する最も単純な方法を使用することです。

最小二乗法は、カーブ フィッティングに一般的に使用されます。他の多くの最適化問題も、エネルギーを最小化するかエントロピーを最大化することによって最小二乗形式で表現できます。

たとえば、最も単純な線形関数 y=kx b

から始めましょう。 座標軸上にいくつかの点 (1.1, 2.0)、(2.1, 3.2)、(3, 4.0)、(4, 6)、(5.1, 6.0) があることがわかっています。これらの点を通過する画像 Mode.

もちろん、この直線がすべての点を通るわけではありません。5 つの点からこの直線までの距離の二乗和を最小化すればよいのです。これには、最小二乗法を使用します。その後、線形フィッティングを使用します。話したいことがたくさんあります。最小二乗法についてのみ質問されたので、私はこれくらいにします。

これは大学でのみ学ばれるものであり、一般にモデリングに使用されます。

以上が最小二乗法を使用して、べき乗関数 y=a*x^b と指数関数 y=b*exp(a) を近似します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。