概述
麻烦高手,求助一下回归wilson方程参数的matlab程序。自己编的不知道哪里的原因,误差很大。
% wilson 回归参数 调用格式-----[x,fval]=fminsearch(@wilson,[100 100])单纯形法求最小值
function f = wilson(x)
A12=x(1);
A21=x(2);
YY=0;
YYY=0;
FFF=0;
X1=[0.0593 0.1306 0.2660 0.3842 0.4708 0.6256 0.7178 0.8214 0.9037 0.9397];
Y1=[0.3285 0.4902 0.6234 0.6831 0.7125 0.7524 0.7832 0.8349 0.8864 0.9215];
for i=1:length(X1)
i
x1=X1(i);%提取本次试验点的实验值
x2=1-x1; % x1,x2 试验值
y1=Y1(i);
y2=1-y1; % y1,y2 试验值
A12;
A21;
Lnr1=-log(x1+A12*x2)+x2*(A12/(x1+A12*x2)-A21/(x2+A21*x1));
Lnr2=-log(x2+A21*x1)+x1*(A21/(x2+A21*x1)-A12/(x1+A12*x2));
r1=exp(Lnr1);
r2=exp(Lnr2);
A1=4.1973;A2=3.4337;
B1=1575.0;B2=1413.0;
C1=-34.29;C2=-44.25;
t=70;
T=t+273.15;
P10=exp(A1-B1/(C1+t));
P20=exp(A2-B2/(C2+t));
P=x1*r1*P10+x2*r2*P20
% P-总压;P10-物质1的饱和蒸汽压;P20-物质2的饱和蒸汽压. 单位:Kpa
y1cal=x1*r1*P10/P
y2cal=x2*r2*P20/P
%------------------------------
Y=abs(y1-y1cal); %Y-本次计算点的绝对误差
YY=YY+Y; %YY-已计算点的绝对误差之和
%-------------------------------
MM=abs((y1-y1cal)./y1);
YYY=YYY+MM;
%------------------
m=abs(y1cal-y1);
M(1,i)=m;
%-----------------------
FF=(y1cal-y1).^2+(y2cal-y2).^2;
FFF=FFF+FF;%目标函数
%a=log(r1/r2);
%b=log(r1)/x2^2;
% c=-log(r2)/x1^2;
end
f=FFF;
fata=YY/i%平均偏差
sigma=YYY/i%平均相对偏差
sigmaM=max(M)%最大偏差
[Last edited by cooler8395 on 2009-8-3 at 20:45]
最后
以上就是英勇寒风为你收集整理的matlab回归参数,【求助】MATLAB回归wilson方程参数 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...的全部内容,希望文章能够帮你解决matlab回归参数,【求助】MATLAB回归wilson方程参数 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复