Matlab: Solving equation with variable in Bessel function

Hey, everyone. Can you help me with my problem? I want matlab solve the equation with variable in the bessel functions. Here is my program code.
%Given
Mu=0.5;
E1=7*(10^6);
E2=2.5*(10^8);
R=0.0795;
h=0.008;
Eta=1875;
Fz=2000;
%%Variable
Vb=1;
a_=((2*(1-Mu)*R*Fz)/(pi*E1))^(1/2);
syms a_h a_hL
a_h=solve(1+(2*Vb*Eta/(a_h*(E1+E2)))*(1/((besselk(0,(a_h*E2/(Vb*Eta))))/(besselk(1,(a_h*E2/(Vb*Eta))))+besseli(0,(a_h*(E1+E2)*E2/(Vb*Eta*E1)))/besseli(1,(a_h*(E1+E2)*E2/(Vb*Eta*E1)))))-((a_/a_h)^2));
a_hL=solve(1+(2*E2*E2*a_hL/(Vb*Eta*(E1+E2)))*(1/((besselk(0,(a_hL*E2/(Vb*Eta))))/(besselk(1,(a_hL*E2/(Vb*Eta))))+besseli(0,(Vb*Eta*(E1+E2)/(a_hL*E2*E1)))/besseli(1,(Vb*(E1+E2)*Eta/(a_hL*E2*E1)))))-((a_/a_hL)^2));
The program gives me answer "Warning: Explicit solution could not be found".
I also tried with fzero function:
a_h=fzero(@(a_h)(1+(2*Vb*Eta/(a_h*(E1+E2)))*(1/((besselk(0,(a_h*E2/(Vb*Eta))))/(besselk(1,(a_h*E2/(Vb*Eta))))+besseli(0,(a_h*(E1+E2)*E2/(Vb*Eta*E1)))/besseli(1,(a_h*(E1+E2)*E2/(Vb*Eta*E1)))))-((a_/a_h)^2)),1);
The program gives error "Function value at starting guess must be finite and real.",whereas I gave guess value 1.
The equations should be solvable, (I hope so) as all data was taken from paper and lab experiment. What am I doing wrong? Hope to receive any advice regarding to the problem. Thank you in advance.

Réponses (2)

Carles Molist
Carles Molist le 26 Nov 2018
Hi, did you find a solution to that problem? Carles
Jorge Aranda
Jorge Aranda le 8 Juin 2023
I would need an answer to this question. How to solve a non linear eq that contains bessel functions and where the solutions has no real values.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by