given this function is there a way in matlab with which i can know is its odd, even or neither?

 Réponse acceptée

Voss
Voss le 6 Mai 2022
One thing you can do is to plot the function and visually inspect it:
f = @(x)0.5*(sin(x)+abs(sin(x)));
fplot(f,[-pi pi])
It doesn't look even or odd.
You could also evaluate the function at some values of x and -x and compare the results:
x = -pi:0.1:pi;
is_even = isequal(f(x),f(-x))
is_even = logical
0
is_odd = isequal(f(x),-f(-x))
is_odd = logical
0
(A sanity check with functions known to be odd or even)
f = @(x)sin(x);
is_even = isequal(f(x),f(-x))
is_even = logical
0
is_odd = isequal(f(x),-f(-x))
is_odd = logical
1
f = @(x)cos(x);
is_even = isequal(f(x),f(-x))
is_even = logical
1
is_odd = isequal(f(x),-f(-x))
is_odd = logical
0

5 commentaires

SSBGH
SSBGH le 6 Mai 2022
thanks
SSBGH
SSBGH le 6 Mai 2022
when i tried to plot it without [-pi pi] i got this
doesn't it look like an even function?
Voss
Voss le 6 Mai 2022
Modifié(e) : Voss le 6 Mai 2022
No. An even function is symmetric about the y-axis.
f = @(x)0.5*(sin(x)+abs(sin(x)));
fplot(f,[-15 7.5]);
set(gca(),'YAxisLocation','origin','YLim',[-0.2 2.2])
SSBGH
SSBGH le 6 Mai 2022
thanks you are great
Voss
Voss le 6 Mai 2022
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (1)

David Hill
David Hill le 6 Mai 2022

1 vote

x=-pi:.001:pi;
f=@(x).5*(sin(x)+abs(sin(x)));
if isequal(f(x),f(-x))
even_odd=2;%even
elseif isequal(-f(x),f(-x))
even_odd=1;%odd
else
even_odd=0;%neither
end

Catégories

En savoir plus sur Line Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by