# help me in degree of membership function correction in fuzzy logic tool with new membership function creation

9 views (last 30 days)
SINGANAMALLA VIJAYAKUMAR on 18 Feb 2017
Answered: Sam Chak on 17 Sep 2022
function y = nf1(x, params) if nargin ~= 2 error('Two arguments are required by the Normal PDF MF.'); elseif length(params) < 2 error('The Normal PDF MF needs at least four parameters.'); end
sigma1 = params(1); c1 = params(2);
end r1 = exp(-(x-c1).^2 ./ (2 .* sigma1 .^2)) ./ (sigma1 .* (sqrt(2*pi)));
the above code changed using that formula. but, here the curve is not fitting in the 0 to 1 interval. so, please help me fuzzy experts...
Thanking you

Sam Chak on 17 Sep 2022
That's because the amplitude of your custom function depends on the value of σ. If it is not designed as , then the upper bound of the function is not at .
In your case, the chosen custom function is a Normal Distribution function:
where
the amplitude, .
To make sure that the custom function bounded , then the function has to be carefully designed.
For example, guarantees that .
x = linspace(-1, 1, 20001);
sigma = 1/sqrt(2*pi);
center = 0;
mf1 = custmf(x, [sigma center]);
plot(x, mf1), grid on, ylim([-0.1 1.1])
text(-0.05, 1.05, 'mf1')
xlabel('Universe of Discourse, \it{x}')
ylabel('Degree of membership, \mu(\it{x})')
% Custom Membership Function -- Normal distribution
function mf = custmf(x, params)
sigma = params(1);
c = params(2);
mf = exp(-1/2*((x - c)/sigma).^2) / (sigma*(sqrt(2*pi)));
% mf = exp(-(x - c).^2./(2*sigma^2)); <-- the same as gaussmf()
end