finding an array of roots?

6 views (last 30 days)
Raphael Hatami
Raphael Hatami on 1 Oct 2019
Answered: Raphael Hatami on 1 Oct 2019
Hello, I'm trying to find the root of f with respect to phi, given multiple values of theta. However, when doing this, it calculates phi to be a single value, though it should be mutiple values given that theta is mutiple values. Below is my code, can anybody see what I'm doing wrong? Thank you
R = .5 %m
L = 1.25 %m
H = .25 %m
N = 100
theta = linspace(0, 4*pi, N);
for i = 1:N
fphi = @(phi) R*sin(theta(i)) + L*sin(phi) - H;
phi = fzero(fphi, phi)
end

Answers (2)

KALYAN ACHARJYA
KALYAN ACHARJYA on 1 Oct 2019
Edited: KALYAN ACHARJYA on 1 Oct 2019
Is this?
R=.5; %m
L=1.25; %m
H=.25; %m
N=100
phi=0;
theta=linspace(0, 4*pi, N);
for i=1:N
fphi=@(phi) R*sin(theta(i)) + L*sin(phi) - H;
phi=fzero(fphi,phi)
end
Or
R=.5; %m
L=1.25; %m
H=.25; %m
N=100;
phi=zeros(1,N);
theta=linspace(0, 4*pi, N);
for i=1:N
fphi=@(phi) R*sin(theta(i)) + L*sin(phi) - H;
phi(i)=fzero(fphi,phi(i));
end
phi

Raphael Hatami
Raphael Hatami on 1 Oct 2019
Kalyan,
thanks for taking the time to do this. I actually realized everything was already working properly and I just was reading the command window properly
Thanks anyhow,
Raphael

Tags

Community Treasure Hunt

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

Start Hunting!