I to create a function using besselj function and solve it using fzero to find eigenvalues like this...

t = 1:.01:30;
x = t;
y = besselj(1,t);
t = 1:.01:30;
b = 10;
y2 = besselj(0,t);
x0=[0 30];
fun = t.*y - b.*y2 ;
z = fzero(fun, x0)

1 个评论

Whe I try to put this code at the MatLab it shows this message: Error using fzero (line 169) FUN must be a function, a valid string expression, or an inline function object.
Error in Try6 (line 9) z = fzero(fun, x0)

请先登录,再进行评论。

 采纳的回答

Symbolically you seem to be trying to solve
t * BesselJ(1,t) - 10 * BesselJ(0,t)
probably for t. If that is the case, then code
fzero(@(t) t .* besselj(1,t) - 10 * besselj(0,t), x0)
Note: there are 10 zeros between 0 and 30, and fzero does not promise to find the first. It might refuse to find any because the expression is negative at both 0 and 30 and so fzero would not know that there is a zero crossing.

5 个评论

Thanks a lot for your help, but do you know how to show the ten first values using this equation?
I mean...I am looking for the first ten values that solve this equation. Symbolically I want to find the eigenvalues....that are found using that equation...
I discovered that this function just gets one value per interval...do you know if I can get through ten different answers?
Thanks a lot!! But I also used this code: a = 0:30; for x0 = 1:length(a) t = 1:.01:10; z = x0; z = fzero(@(t) t .* besselj(1,t) - 10 * besselj(0,t), x0) end
with the above code I found all the values that I want. But some values show up more than once. Do you know how to do it to they show up only once?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by