使用MATLAB 解个方程,已知数据如何求两个未知数?

2024-12-31 19:01:59
推荐回答(2个)
回答1:

这不能叫解方程,而是参数拟合


对方程取对数 可得

ln(k)=ln(A)-EA/R*(1/T);

用k的对数结果作y,T的倒数1/T作x,进行线性拟合

的到的

斜率是-EA/R   ,截距是ln(A) 由此可以求出A和EA


T=[700 730 760 790 810 840 910 1000];

k=[0.011 0.035 0.105 0.343 0.789 2.17 20 145];

R=8.314;


p=polyfit(1./T,log(k),1);

A=exp(p(2));

EA=-p(1)*R;

TT=700:1000;

kk=A*exp(-EA./(R*TT));

plot(T,k,'o');hold on;%数据

plot(TT,kk,'k');hold off;%拟合

axis([690 1010 -10 160]);

title(['A=' num2str(A,'%e') ',  EA=' num2str(EA,'%e')]);

legend('数据点','拟合曲线','Location','North');


得到的结果如图所示

回答2: