odd and even functions

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

 Risposta accettata

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 Commenti

SSBGH
SSBGH il 6 Mag 2022
thanks
SSBGH
SSBGH il 6 Mag 2022
when i tried to plot it without [-pi pi] i got this
doesn't it look like an even function?
Voss
Voss il 6 Mag 2022
Modificato: Voss il 6 Mag 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 il 6 Mag 2022
thanks you are great
Voss
Voss il 6 Mag 2022
You're welcome!

Accedi per commentare.

Più risposte (1)

David Hill
David Hill il 6 Mag 2022
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

Richiesto:

il 6 Mag 2022

Commentato:

il 6 Mag 2022

Community Treasure Hunt

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

Start Hunting!

Translated by