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 errstr = handlerr( errid, errmsg, suppresserr );

不知道该怎么做。请指导..

4

1 回答 1

2

找出您的函数返回的原因NaNNaN由 0 除以 0 或其他原因导致

您的函数f(x)将计算:0/0x=0

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

ans =

   NaN

Change your limits of integration so that you don't include 0, or re-define your function f to be better behaved at 0.

于 2011-07-08T04:27:33.763 回答