MATLAB: Set of transcendental equations

funfzerotranscendental equation

Hello,
Below is a transcendental equation that I would like to solve:
z*besselj(1,z) – c*besselj(0,z) = 0
where c is a constant and z is the variable to be determined. I know that I need to solve this using fzero(fun,x0) and I would like to use the initial value x0=1. However, I am struggling with "fun", i.e., I'm not sure how to make the above equation into the right format to use in fzero. Ultimately, I would like to make a list of solutions of z for each value of c from 0 to 225 with a step size of 0.01.
Anything helps!
Thanks,
John

Best Answer

I suggest:
f = @(z,c) z.*besselj(1,z) - c.*besselj(0,z);
then call fzero with a vector of c values:
c = ...
for k1 = 1:length(c)
ci = c(k1);
z = fzero(@(z) f(z,ci), 1);
end
There are going to be an infinity of zeros for every value of c, so obviously more than one solution.