My error says "Unrecognized function or variable 'CP'." What can I add to the script so that I can define it?

2 views (last 30 days)
%Use symbolic processing with the variable x
syms x
%Enconde the function f(x)
f(x) = (1-x^2)/(1+x^2)
%Set the distance to the left/right of the critical point
h=0.01
%Find the first derivative of the function
fp(x) = diff(f,1);
%Solve for the roots of fp
root1 = solve(fp)
%Consider the first critical point only
c=root1(1)
%Determine if the function is "Increasing" or "Decreasing" at the right of the critical point
if (fp(c+h)>0)
IoDR = "Decreasing"
elseif (fp(c+h)<0)
IoDR = "Increasing"
end
%Determine if the function is "Increasing" or "Decreasing" at the right of the critical point
if (fp(c-h)>0)
IoDL = "Increasing"
elseif (fp(c-h)<0)
IoDL = "Decreasing"
end
%Use first derivative Test to Determine if the critical point is a "Maximum" point or "Minimum" point.
if IoDL=="Increasing" & IoDR =="Decreasing"
cp(x)= "Minimum"
elseif IoDL=="Decreasing" & IoDR =="Increasing"
cp(x)= "Maximum"
end
%Find the second derivative of the function
fpp(x)= diff(f,2);
%Find the points of inflection of the function by equating the second derivative of the function to zero.
cc = (-sqrt(3)/3), (1/2)
(sqrt(3)/3), (1/2)
%Apply Second Derivative Test to check whether the critical point is a "Maximum" point, a "Minimum" point or "Point of Inflection".
if fpp(c) >0
cp2 = "Minimum"
elseif fpp(c)<0
cp2 = "Maximum"
else
cp2 = "Point of Inflection"
end
%GRAPH THE FUNCTION
clf();
g1= ezplot(f);
hold on
grid on
plot(c,f(c), 'r*')
title("Curve Tracing")
text(c+.5,f(c),["("+string(c)+","+string(f(c))+") "+CP ])

Answers (1)

VBBV
VBBV on 1 Apr 2023
Edited: VBBV on 1 Apr 2023
None of the if statements for variables IoDR, IoDL are being executed. Can you check if the preceding if conditions for variable fp are correct ? As you can see below, IoDR & IoDLare both "increasing", which makes the variable CP undefined
%Use symbolic processing with the variable x
syms x
%Enconde the function f(x)
f(x) = (1-x^2)/(1+x^2)
f(x) = 
%Set the distance to the left/right of the critical point
h=0.01
h = 0.0100
%Find the first derivative of the function
fp(x) = diff(f,1);
%Solve for the roots of fp
root1 = solve(fp)
root1 = 
0
%Consider the first critical point only
c=root1(1)
c = 
0
%Determine if the function is "Increasing" or "Decreasing" at the right of the critical point
if (fp(c+h)>0)
IoDR = "Decreasing"
elseif (fp(c+h)<0)
IoDR = "Increasing"
end
IoDR = "Increasing"
%Determine if the function is "Increasing" or "Decreasing" at the right of the critical point
if (fp(c-h)>0)
IoDL = "Increasing"
elseif (fp(c-h)<0)
IoDL = "Decreasing"
end
IoDL = "Increasing"
%Use first derivative Test to Determine if the critical point is a "Maximum" point or "Minimum" point.
if IoDL=="Increasing" & IoDR =="Increasing"
CP = "Minimum"
elseif IoDL=="Decreasing" & IoDR =="Decreasing"
CP = "Maximum"
end
CP = "Minimum"
%Find the second derivative of the function
fpp(x)= diff(f,2);
%Find the points of inflection of the function by equating the second derivative of the function to zero.
cc = (-sqrt(3)/3), (1/2)
cc = -0.5774
ans = 0.5000
(sqrt(3)/3), (1/2)
ans = 0.5774
ans = 0.5000
%Apply Second Derivative Test to check whether the critical point is a "Maximum" point, a "Minimum" point or "Point of Inflection".
if fpp(c) >0
cp2 = "Minimum"
elseif fpp(c)<0
cp2 = "Maximum"
else
cp2 = "Point of Inflection"
end
cp2 = "Maximum"
%GRAPH THE FUNCTION
clf();
g1= ezplot(f);
hold on
grid on
plot(c,f(c), 'r*')
title("Curve Tracing")
text(c+.5,f(c),["("+string(c)+","+string(f(c))+") "+CP ])

Community Treasure Hunt

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

Start Hunting!