Can MATLAB handle Fuzzy Derivatives and plotting in Fuzzy Logic contexts?

6 Ansichten (letzte 30 Tage)
This question is actually on behalf of a colleague who works with fuzzy mathematics. He typically computes things like fuzzy derivatives by hand, including for specific functions such as "function 14" (though I'm not familiar with the specific form of that function). He’s interested in whether Matlab can symbolically and numerically handle tasks in fuzzy calculus — especially taking and plotting fuzzy derivatives.
I’m not experienced with fuzzy systems myself, but I’d like to recommend Matlab to him if it supports these features. So my main questions are:
  1. Can Matlab compute and plot fuzzy functions and their derivatives?
  2. Does Matlab have built-in support or packages for fuzzy arithmetic or fuzzy calculus?
  3. If not natively, is there a workaround or external library that integrates with Matlab to do this?
I’d really appreciate any insights or examples. It seems like a missed opportunity for my friend to be doing all this manually when such software might already handle it.
Thanks in advance!

Akzeptierte Antwort

Sam Chak
Sam Chak am 3 Mai 2025
You can certainly recommend the Fuzzy Logic Toolbox to your friend. However, the toolbox is primarily focused on the fuzzy inference process. As of R2024b, only fuzzy arithmetic from the toolbox is supported. To perform fuzzy calculus operations, it may be necessary to obtain the shared third-party codes from the MathWorks MATLAB File Exchange, such as Fuzzy Calculus Core, and Fuzzy Relational Calculus Toolbox. These resources are free and licensed under the BSD license.
Despite the limitations of the toolbox, it is entirely possible to use MATLAB to freely code, compute, and plot bipolar fuzzy functions and their derivatives, as long as one has a strong aptitude for fuzzy math like your friend does.
Note: Figure 3 in the original image is technically incorrect in displaying the discontinuous jump at , because this particular special generalized bell function is not differentiable at that point.
h = (-3:0.01:3)';
alp = 0:0.1:1;
mfN = zeros(numel(h), numel(alp));
mfP = mfN;
dmfN= mfN;
dmfP= mfN;
a = 1; % area under bell curve
b = 0.5; % bell shape
c = 0; % center of bell
for i = 1:numel(alp)
mfN(:,i) = 1/(1 + alp(i))*(-gbellmf(h, [a, b, c])); % negative gbell set
mfP(:,i) = 1/(1 + alp(i))*( gbellmf(h, [a, b, c])); % positive gbell set
dmfN(:,i) = 1/(1 + alp(i))*( h./(abs(h).*(1 + abs(h)).^2)); % derivative of mfN
dmfP(:,i) = 1/(1 + alp(i))*(-h./(abs(h).*(1 + abs(h)).^2)); % derivative of mfP
end
figure
plot(h, mfN, 'color', "#555da6"), hold on
plot(h, mfP, 'color', "#51b97e"), hold off
xlabel({'$h$'}, 'interpreter', 'latex', 'fontsize', 12)
ylabel({'$\left[f(h)\right]_{\alpha}$'}, 'interpreter', 'latex', 'fontsize', 12)
title('Fig. 2: Family of Bipolar gbell Sets', 'fontsize', 14)
grid on
ylim([-1, 1])
figure
plot(h, dmfN, 'color', "#555da6"), hold on
plot(h, dmfP, 'color', "#51b97e"), hold off
xlabel({'$h$'}, 'interpreter', 'latex', 'fontsize', 12)
ylabel({'$\left[f''_{gH}(h)\right]_{\alpha}$'}, 'interpreter', 'latex', 'fontsize', 12)
title('Fig. 3: generalized Hukuhara Derivatives', 'fontsize', 14)
grid on
ylim([-1, 1])

Weitere Antworten (0)

Tags

Produkte


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by