Why does fzero returns initial guess.

2 views (last 30 days)
My script is below, whenever I enter this script into Matlab it returns to me my initial guess. I am curious Why? All help appreciated.
q = 10
theta = 135
Q = 600
z = 20
P = @(x,y) q*sin(theta)*x - q*cos(theta)*y - Q./(2*pi*z)*atan((x./y));
D = []
for x = -10:10;
for y = -10:10;
E= P(x,y);
D = [D;E,x,y];
end
end
%to check if the equation T (psi) works for root finding equation
T = @(x,y) q*sin(theta)*x - q*cos(theta)*y - Q./(2*pi*z)*atan((x./y))-P(x,y);
L = [];
for x = -10:10;
for y = -10:10;
Q=T(x,y);
L = [L;Q];
end
end
R=[]
x = [];
for y = -5:5;
[yi]= fzero(@(x) T(x,y),25);
x=[x;yi,y]
end

Accepted Answer

Star Strider
Star Strider on 26 Sep 2016
Your ‘T’ function is for all intents and purposes ‘P(x,y)-P(x,y)’. The fzero function detects zero-crossings, and ‘T’ is zero everywhere:
P = @(x,y) q*sin(theta)*x - q*cos(theta)*y - Q./(2*pi*z)*atan((x./y));
T = @(x,y) q*sin(theta)*x - q*cos(theta)*y - Q./(2*pi*z)*atan((x./y))-P(x,y);

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!