finding an array of roots?

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

Réponses (2)

KALYAN ACHARJYA
KALYAN ACHARJYA le 1 Oct 2019
Modifié(e) : KALYAN ACHARJYA le 1 Oct 2019

0 votes

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 le 1 Oct 2019

0 votes

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!

Translated by