1

この方程式を使用して、2 日間からいくつかのデータをカーブ フィットしようとしています。

f = @(x) ((x.^4) .* exp(x)) ./((exp(x)-1).^2);
gama*x + 9*R*((x/a)^3)*quad(f,0,a/x);

ここで、x は独立変数で、a は未知で、gama は既知です。次の手順を試してみましたが、最も成功しました。

function C=myquad(a,T)
C = zeros(size(T));
gama = 20 * 1e-3;
R = 8.314;
f = @(x) ((x.^4) .* exp(x)) ./((exp(x)-1).^2);
for n = 1:length(T)
    C(n) = gama*T(n) + 9*R*((T(n)/a)^3)*quad(f,0,a/T(n));
end


>>fit(T_0,C_0,fittype('myquad(a,x)'));

次のエラーが返されました

??? モデル関数によって NaN が計算されました。フィッティングを続行できません。係数の上限と下限を使用または制限してみてください。

エラー ==> 443 で適合

何をすべきかわからない。ご指導ください..

4

1 に答える 1

2

関数がを返す理由を調べてくださいNaNNaN0を0で除算した結果、またはその他の原因

あなたの関数は以下f(x)を計算0/0x=0ます:

>> f = @(x) ((x.^4) .* exp(x)) ./((exp(x)-1).^2);
>> f(0)

ans =

   NaN

統合の制限を変更して0を含めないようにするか、関数fを再定義して0でより適切に動作するようにします。

于 2011-07-08T04:27:33.763 に答える