Matlab: Solving equation with variable in Bessel function
Afficher commentaires plus anciens
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
le 26 Nov 2018
0 votes
Hi, did you find a solution to that problem? Carles
Jorge Aranda
le 8 Juin 2023
0 votes
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
En savoir plus sur Bessel functions dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!