0

周波数 14e10 rad/s までの電気トレースに見られる減衰のプロットを生成しました。ydata の範囲は、約 1 ~ 10 Np/m です。フォームのフィットを生成しようとしています

y = A*sqrt(x) + B*x + C*x^2.

A は 10^ -6前後、B は 10^-11 前後、C は 10^-23 前後になると思います。ただし、lsqcurvefit が返す最小係数は 10^-7 です。また、B と C には 0 を返しますが、A にはゼロ以外の係数のみを返します。フィッティングは実際には非常によく見えますが、物理学は B と C が 0 であってはならないことを示しています。

これが私が関数を呼び出す方法です

% measurement estimate
x_alpha = [1e-6 1e-11 1e-23];

lb = [1e-7, 1e-13, 1e-25];
ub = [1e-3, 1e-6, 1e-15];
x_alpha = lsqcurvefit(@modelfun, x_alpha, omega, alpha_t, lb,ub)

モデル関数はこちら

function [ yhat ] = modelfun( x, xdata )

yhat = x(1)*xdata.^.5 + x(2)*xdata + x(3)*xdata.^2;
end

このような小さな係数を返すように lsqcurvefit を取得することは可能ですか? 丸めのエラーですか、それとも何か他のものですか? 公差を変更して、予想に近い適合を確認する方法はありますか?

4

1 に答える 1