⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inv_li.m

📁 The neuro-fuzzy software for identification and data analysis has been implemented in the MATLAB lan
💻 M
字号:
function [SSE,par,bias]=inv_li(inputs,centers,bases,output)%INV_LI		Inversion on the consequents for linear output models%%  [SSE,par,bias]=inv_li(inputs,centers,bases,output)%%	SSE[1,1]			Sum of the squeared errors%	par[no_rules,no_var+1]		Parameters of the consequents%	bias[1,1]			Shifts up or down all the%					consequents %%	inputs[no_data,no_var]%	centers[no_rules,no_var]%	bases[no_rules,no_var]%	output[no_data,1]%%	The following global variable are required:                     %		memb_fun:	'gaussian'/'triangular'                % 		arch:		'weigthed'/'comb'                      %		format_out:	'linear'/'constant'                       %		model_bias:	'bias'/'no_bias'%_______________________________________________________9 April 1996____global memb_fun;global arch;global format_out;global model_bias;[no_data,no_var]=size(inputs);[no_rules,no_var]=size(centers);no_par=no_var+1;w=ones(no_data,no_rules);	%Matrix of the degree of match of each				%datum to the premise of each ruleSum_w=zeros(no_data,1);for i=1:no_rules	for j=1:no_var		if strcmp(memb_fun,'gaussian')			match=exp(-((inputs(:,j)-centers(i,j)).^2)/bases(i,j));		end		if strcmp(memb_fun,'triangular')			match=max(0,ones(no_data,1)-2*abs(inputs(:,j)-centers(i,j))/bases(i,j));		end		w(:,i)=w(:,i).*match;	end	Sum_w=Sum_w + w(:,i);endSum_w=Sum_w+(Sum_w==0);X=zeros(no_data,no_par*no_rules);if strcmp(arch,'comb')	in_ext=[inputs,ones(size(inputs,1),1)];	for i=1:no_rules		for j=1:no_par			X(:,(i-1)*no_par+j)=w(:,i).*in_ext(:,j);		end	endendif strcmp(arch,'weigthed')	in_ext=[inputs,ones(size(inputs,1),1)];	for i=1:no_rules		for j=1:no_par			X(:,(i-1)*no_par+j)=(w(:,i)./Sum_w).*in_ext(:,j);		end	endendif strcmp(model_bias,'bias')	A=[X,ones(no_data,1)];	tol=1e-9;	P_and_bias=pinv(A,tol)*output;	P=P_and_bias(1:no_par*no_rules,:);	bias=P_and_bias(no_par*no_rules+1,:);endif strcmp(model_bias,'no_bias')	A=X;	tol=1e-9;	P=pinv(A,tol)*output;	bias=0;endSSE=sumsqr(output-X*P-bias);par=(reshape(P,no_par,no_rules))';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -