www.gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第4章/water_mu.m
function y=water_mu(x) y=zeros(5,6); DO=[7.5 6 5 3 2]; KMnO4=[2 4 6 10 15]; BOD5=[3 3 4 6 10]; NH3_N=[0.15 0.5 1 1.5 2]; C6H5OH=[0.002 0.002 0.005 0.01 0.1]; m_do=mean(DO); m_kmno4=mean(KMnO4); m_bod5=mean(BOD5); m_nh3=mean(NH3_N); m_c6h5oh=mean(C6H5OH); w_do=x(1)/m_do;w_do=1/w_do; w_kmno4=x(2)/m_kmno4; w_bod5=x(3)/m_bod5; w_nh3=x(4)/m_nh3; w_c6h5oh=x(5)/m_c6h5oh; w=w_do+w_kmno4+w_bod5+w_nh3+w_c6h5oh; w_do=w_do/w; w_kmno4=w_kmno4/w; w_bod5=w_bod5/w; w_nh3=w_nh3/w; w_c6h5oh=w_c6h5oh/w; w1=[w_do;w_kmno4;w_bod5;w_nh3;w_c6h5oh]; y(:,end)=w1; y(1,1:5)=do(x(1)); y(2,1:5)=kmno4(x(2)); y(3,1:5)=bod5(x(3)); y(4,1:5)=nh3(x(4)); y(5,1:5)=c6h5oh(x(5)); function y=do(x) DO=[7.5 6 5 3 2]; if x>=DO(1) y(1)=1; elseif x<=DO(2) y(1)=0; elseif x>DO(2)&&x<DO(1) y(1)=(x-DO(2))/(DO(1)-DO(2)); end if x<=DO(3)||x>=DO(1) y(2)=0; elseif x>DO(3)&&x<DO(2) y(2)=(x-DO(3))/(DO(2)-DO(3)); elseif x>=DO(2)&&x<DO(1) y(2)=(DO(1)-x)/(DO(1)-DO(2)); end if x<=DO(4)||x>=DO(2) y(3)=0; elseif x>DO(4)&&x<DO(3) y(3)=(x-DO(4))/(DO(3)-DO(4)); elseif x<DO(2)&&x>=DO(3) y(3)=(DO(2)-x)/(DO(2)-DO(3)); end if x<=DO(5)||x>=DO(3) y(4)=0; elseif x>DO(5)&&x<DO(4) y(4)=(x-DO(5))/(DO(4)-DO(5)); elseif x<DO(3)&&x>=DO(4) y(4)=(DO(3)-x)/(DO(3)-DO(4)); end if x<=DO(5) y(5)=1; elseif x>=DO(4) y(5)=0; elseif x<DO(4)&&x>DO(5) y(5)=(DO(4)-x)/(DO(4)-DO(5)); end function y=kmno4(x) KMnO4=[2 4 6 10 15]; if x<=KMnO4(1) y(1)=1; elseif x>=KMnO4(2) y(1)=0; elseif x<KMnO4(2)&&x>KMnO4(1) y(1)=(x-KMnO4(2))/(KMnO4(1)-KMnO4(2)); end if x>=KMnO4(3)||x<=KMnO4(1) y(2)=0; elseif x<KMnO4(3)&&x>KMnO4(2) y(2)=(x-KMnO4(3))/(KMnO4(2)-KMnO4(3)); elseif x<=KMnO4(2)&&x>KMnO4(1) y(2)=(KMnO4(1)-x)/(KMnO4(1)-KMnO4(2)); end if x>=KMnO4(4)||x<=KMnO4(2) y(3)=0; elseif x<KMnO4(4)&&x>KMnO4(3) y(3)=(x-KMnO4(4))/(KMnO4(3)-KMnO4(4)); elseif x>KMnO4(2)&&x<=KMnO4(3) y(3)=(KMnO4(2)-x)/(KMnO4(2)-KMnO4(3)); end if x>=KMnO4(5)||x<=KMnO4(3) y(4)=0; elseif x<KMnO4(5)&&x>KMnO4(4) y(4)=(x-KMnO4(5))/(KMnO4(4)-KMnO4(5)); elseif x>KMnO4(3)&&x<=KMnO4(4) y(4)=(KMnO4(3)-x)/(KMnO4(3)-KMnO4(4)); end if x>=KMnO4(5) y(5)=1; elseif x<=KMnO4(4) y(5)=0; elseif x>KMnO4(4)&&x<KMnO4(5) y(5)=(KMnO4(4)-x)/(KMnO4(4)-KMnO4(5)); end function y=bod5(x) BOD5=[3 3 4 6 10]; if x<=BOD5(1) y(1)=1; elseif x>BOD5(2) y(1)=0; end if x>=BOD5(3) y(2)=0; elseif x<BOD5(3)&&x>=BOD5(2) y(2)=(x-BOD5(3))/(BOD5(2)-BOD5(3)); end if x>=BOD5(4)||x<=BOD5(2) y(3)=0; elseif x<BOD5(4)&&x>BOD5(3) y(3)=(x-BOD5(4))/(BOD5(3)-BOD5(4)); elseif x>BOD5(2)&&x<=BOD5(3) y(3)=(BOD5(2)-x)/(BOD5(2)-BOD5(3)); end if x>=BOD5(5)||x<=BOD5(3) y(4)=0; elseif x<BOD5(5)&&x>BOD5(4) y(4)=(x-BOD5(5))/(BOD5(4)-BOD5(5)); elseif x>BOD5(3)&&x<=BOD5(4) y(4)=(BOD5(3)-x)/(BOD5(3)-BOD5(4)); end if x>=BOD5(5) y(5)=1; elseif x<=BOD5(4) y(5)=0; elseif x>BOD5(4)&&x<BOD5(5) y(5)=(BOD5(4)-x)/(BOD5(4)-BOD5(5)); end function y=nh3(x) NH3_N=[0.15 0.5 1 1.5 2]; if x<=NH3_N(1) y(1)=1; elseif x>=NH3_N(2) y(1)=0; elseif x<NH3_N(2)&&x>NH3_N(1) y(1)=(x-NH3_N(2))/(NH3_N(1)-NH3_N(2)); end if x>=NH3_N(3)||x<=NH3_N(1) y(2)=0; elseif x<NH3_N(3)&&x>NH3_N(2) y(2)=(x-NH3_N(3))/(NH3_N(2)-NH3_N(3)); elseif x<=NH3_N(2)&&x>NH3_N(1) y(2)=(NH3_N(1)-x)/(NH3_N(1)-NH3_N(2)); end if x>=NH3_N(4)||x<=NH3_N(2) y(3)=0; elseif x<NH3_N(4)&&x>NH3_N(3) y(3)=(x-NH3_N(4))/(NH3_N(3)-NH3_N(4)); elseif x>NH3_N(2)&&x<=NH3_N(3) y(3)=(NH3_N(2)-x)/(NH3_N(2)-NH3_N(3)); end if x>=NH3_N(5)||x<=NH3_N(3) y(4)=0; elseif x<NH3_N(5)&&x>NH3_N(4) y(4)=(x-NH3_N(5))/(NH3_N(4)-NH3_N(5)); elseif x>NH3_N(3)&&x<=NH3_N(4) y(4)=(NH3_N(3)-x)/(NH3_N(3)-NH3_N(4)); end if x>=NH3_N(5) y(5)=1; elseif x<=NH3_N(4) y(5)=0; elseif x>NH3_N(4)&&x<NH3_N(5) y(5)=(NH3_N(4)-x)/(NH3_N(4)-NH3_N(5)); end function y=c6h5oh(x) C6H5OH=[0.002 0.002 0.005 0.01 0.1]; if x<=C6H5OH(1) y(1)=1; elseif x>C6H5OH(2) y(1)=0; end if x>=C6H5OH(3) y(2)=0; elseif x<C6H5OH(3)&&x>=C6H5OH(2) y(2)=(x-C6H5OH(3))/(C6H5OH(2)-C6H5OH(3)); end if x>=C6H5OH(4)||x<=C6H5OH(2) y(3)=0; elseif x<C6H5OH(4)&&x>C6H5OH(3) y(3)=(x-C6H5OH(4))/(C6H5OH(3)-C6H5OH(4)); elseif x>C6H5OH(2)&&x<=C6H5OH(3) y(3)=(C6H5OH(2)-x)/(C6H5OH(2)-C6H5OH(3)); end if x>=C6H5OH(5)||x<=C6H5OH(3) y(4)=0; elseif x<C6H5OH(5)&&x>C6H5OH(4) y(4)=(x-C6H5OH(5))/(C6H5OH(4)-C6H5OH(5)); elseif x>C6H5OH(3)&&x<=C6H5OH(4) y(4)=(C6H5OH(3)-x)/(C6H5OH(3)-C6H5OH(4)); end if x>=C6H5OH(5) y(5)=1; elseif x<=C6H5OH(4) y(5)=0; elseif x>C6H5OH(4)&&x<C6H5OH(5) y(5)=(C6H5OH(4)-x)/(C6H5OH(4)-C6H5OH(5)); end