admin 发表于 2022-7-15 21:54:45

回归wilson方程参数matlab程序

% wilson回归参数调用格式-----=fminsearch(@wilson,)单纯形法求最小值

function f = wilson(x)

A12=x(1);

A21=x(2);

YY=0;

YYY=0;

FFF=0;

X1=;

Y1=;

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)%最大偏差
页: [1]
查看完整版本: 回归wilson方程参数matlab程序