1
私はケースP(t) = a * A(t) - b* B(t)
を得ました。それぞれ17281x1は2倍です。MATLAB適合行列
今は変数a
とb
を得るためにカーブフィッティングを使いたいと思います。
フィッティング場合、私はfit
とfittype
を、知っているが、彼らはこのような場合には動作しないようで、ここでaとb 1とし、1
。
これはどのように解決されますか?
私はケースP(t) = a * A(t) - b* B(t)
を得ました。それぞれ17281x1は2倍です。MATLAB適合行列
今は変数a
とb
を得るためにカーブフィッティングを使いたいと思います。
フィッティング場合、私はfit
とfittype
を、知っているが、彼らはこのような場合には動作しないようで、ここでaとb 1とし、1
。
これはどのように解決されますか?
最小自乗法はどうですか?私が正しく理解していれば、問題は P(t) = [A(t), B(t)] * [a; -b]
と表記できます。
[a; -b] = x
、[A(t), B(t)] = Y
とP(t) = P
今すぐ最小二乗解は次のようになりましょう:
x = Y\P;
:あなたも、この場合の 'バックスラッシュ演算子' を使用することができ、MATLABで
x = ((Y'*Y)^-1)*Y'*P;
の場合は、こちらのドキュメントをご覧ください。mldivide
私はこれが役に立てば幸い:参照として
。
EDIT:
は、ここに私のテストコードです:
A = [1;2;3]
B = [4;5;6]
P = [7;8;9]
Y = [A, -B]
disp('------- regular least squares formula -------')
x = ((Y'*Y)^-1)*Y'*P
a = x(1)
b = x(2)
disp('------- mldivide -------')
x = Y\P
a = x(1)
b = x(2)
申し訳ありませんが、私は私の答えを調整し、私はあなたがあなたのソリューション –
Thxをを取得すべきだと思うこのアプローチで、自分のコンピュータ上の小さな例を試してみました、 しかし、 '[a; -b] = x'あるように複数の左辺 ちょうどyurコードをコピーしてください –
私は '[a; -b] = x'と置き換えて '[a; -b] 'を式に' x 'をつけて単純化すると、最小二乗法の解は列ベクトルになります。私は私の答えにテストコードを追加しました。 –