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.

답변 (2개)

Carles Molist
Carles Molist 2018년 11월 26일

0 개 추천

Hi, did you find a solution to that problem? Carles
Jorge Aranda
Jorge Aranda 2023년 6월 8일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 Bessel functions에 대해 자세히 알아보기

질문:

2012년 3월 20일

답변:

2023년 6월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by