多項式曲線を当てはめたい x 値と y 値のセットがあります。この関数は、最大 9 次の多項式の形式を取る必要があります。
y = a(1)*X.^1 + a(2)*X.^2 + a(3)*X.^3 + a(4)*X.^4 + a(5)*X.^5 + a(6)*X.^6 + a(7)*X.^7 + a(8)*X.^8 + a(9)*X.^9;
ここで、a(n) は私の係数です。
私が持っている2つの問題があります。この曲線は、常に 9 次多項式の形をとるとは限りません。それは 3 次、6 次、またはその他 (最大 9 次まで) の場合があります。
最適化ツールボックスを使用してこれを設定する方法がわかりません。何か案は?
次に、計算された y 値が常に正になるように制約を設定できますか?
どうもありがとう、
以下の現在のコード。
関数;
function F = polyfun(a,redCO2)
F = a(1)*redCO2.^1 + a(2)*redCO2.^2 + a(3)*redCO2.^3 + a(4)*redCO2.^4 + a(5)*redCO2.^5 + a(6)*redCO2.^6 + a(7)*redCO2.^7 + a(8)*redCO2.^8 + a(9)*redCO2.^9;
F = @(a) polyfun(a,X);
a0 = [100, 100, 100, 100, 100, 100, 100, 100, 100]; % Starting guess
a = lsqcurvefit(@polyfun,a0,X,y);