我正在尝试用 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, suggesterr );
不知道该怎么办。请指导..
找出你的函数返回的原因
NaN
。 NaN
0 除以 0 的结果,或 其他原因。
您的函数
f(x)
将计算 0/0
的 x=0
:
>> f = @(x) ((x.^4) .* exp(x)) ./((exp(x)-1).^2);
>> f(0)
ans =
NaN
更改积分限制,以便不包含 0,或重新定义函数
f
,以便在 0 时表现更好。