2011-07-08 3 views
1

私はここでのxをこの式解析的に解くことが不可能な積分を含む方程式を使用した曲線フィッティング?

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

を使用しているいくつかのデータをフィット曲線に2日からしようとしていることはガマが知られている、独立変数、aは不明です。私は最も成功した次の手順を試しました。

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で収まるerrstr = handleerr(errid、errmsg、suppresserr);

何をすべきか分かりません。お待ちください。

+0

ありがとう..それは助けた – simar

答えて

2

あなたの機能がNaNを返す理由を確認してください。 NaNは、0を0で除算した結果、またはother causesとなります。

あなたの機能f(x)x=0ため0/0を計算します:

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

ans = 

    NaN 

の統合の自分の限界を変更するには、0を含めるか、しないように、より良い0

で振る舞ったことをあなたの関数 fを再定義します
関連する問題