方程如下,
![用matlab拟合积分方程- 急用!坐等!非常感谢!]()
自变量是T,因变量是Cp。Tt 和ΔH 是拟合常数。请用 β(T) 对T作图,并根据以上方程拟合得出Tt 和ΔH的值。(Tend是数据的最后一个T值。)
以上是对于曲线只有一个峰值的情况,对于两个峰的情况,方程有一点小改动,如下,
![用matlab拟合积分方程- 急用!坐等!非常感谢!-1]()
作图要求跟第一种情况一样。因为本人对于matlab知之甚少,哪怕是一点小改动对于我来说都是座高山,所以只能劳烦高手了。附件里有单峰和双峰的数据举例。第一列是T值,第二列是Cp值。
另外以下是我曾经找一个朋友帮忙做的程序,当时对方程的理解错误,把Cp完全积分出来作为Y值拟合的,结果在Tt转折点附近总是积分不好,程序和拟合结果如下,(相应的数据也在附件里面,data.txt)。希望能有参考价值。
clc
clear all
close all
d = load('data.txt', '-ASCII');
XX = d(:,1);
YY = d(:,2);
%idx = (XX>280);
idx = (XX>304);
X = XX(idx)
Y = YY(idx);
R = 8.314;
f = @(a,x)a(1)*(1-exp( a(2)/R * (1./x - 1/a(3))) ) ;
% hyperbolic-like
%f = @(a,x)a(1) * (1-(1-exp( a(2)/R * (1./x - 1/a(3))) ) ./ (1 + exp( a(2)/R * (1./x-1/a(3))) )) ;
a0 = [1400 220000 304]
[a1,r] = nlinfit(X, Y, f, a0);
A = a1(1)
B = a1(2)
T = a1(3)
mse = sum(r.^2)/(length(r)-length(a1))
plot(XX,YY,'k', XX, f(a1,XX), 'r')
ylabel('$\Delta \hat{H}(T) \quad / \quad kCal \cdot mol^{-1} \cdot K^{-1}$','Interpreter','LaTex')
xlabel('$T \quad / \quad K$','interpreter','latex')
legend('data', 'fitted param')
axis([XX(1), XX(end), YY(1), YY(end)])
![用matlab拟合积分方程- 急用!坐等!非常感谢!-2]() |