# solve the Bessel function ...plzz.

Status
Not open for further replies.

#### rafa040

##### Newbie level 6 left side is a bessel function of zero order.

find the values of Vo
for
• Pinc = -25 , -15 , -5 , 5 , 15 , 25 dbm
• t := 25 in °C
• Io := 0 external bias, A
• Is := 54 • 10-9 saturation current, A
• Rs := 7 in Ω
• Λ := 38.5
• n := 1.12 Ideality factor
• Rg := 50 Generator impedance, in Ω
• RL := 500 in Ω
- - - Updated - - -

put Io=0 on right side of eqn 2

kindly tell me which kind of bessel function is this ..?? 8201 is the plot for Pinc VS Vo i need to get this plot

I've tried to solve you problem. I used scilab, but I think you can also use matlab or Mathcad or any other math computing code.

Code:
function y=F(x)

PincdBm=25;
Pinc=10^(PincdBm/10-3);  // conversion to W
Io=0;
Is=54e-9;
Rs=7;
L=38.5;
n=1.12;
Rg=50;
RL=500;

// besseli is the modified bessel function
y=besseli(0,L/n*sqrt(8*Rg*Pinc))-(1+Io/Is+x/(RL*Is))*exp((1+(Rg+Rs)/RL)*L/n*x+L/n*Rs*Io);

endfunction

err=1e-3;

x0=0.6735;	// first guess
maxiter=5000;	// max iterations
iter=0;

delta=1e-2;

while (abs(F(x0))>err)

iter=iter+1;

if (F(x0-delta)*F(x0+delta) < 0) then
delta=delta/1.5;
elseif ((F(x0+delta)-F(x0-delta))>0) then
x0=x0-delta;
delta=delta*2;
else
x0=x0+delta;
delta=delta*2;
end

if ((iter>=maxiter)&(F(x0-delta)*F(x0+delta) < 0)) then
break;
end

end

x0 // print the estimated root
delta // print the error range (the true zero is between x0-delta and x0+delta)

Since the equation is strongly non-linear and reaches huge numbers it's not easy to solve it by means of secant or Newton-Rapson methods. I've preferred to use bisection algortithm. You can notice that for Pinc>0 dBm the error specification is not fulfilled and you have very high values of F(x), instead of zero. However since the stop condition, after the max iterations are reached, take into account that must be F(x-delta)*F(x+delta) this means the zero (since the function is continous) have to be between x-delta and x+delta.
So you can take as correct the calculated x (I called x0) with error delta.

I've found the following values:
(-25,11uV); (-15,242uV); (-5,61mV); (5,0.67); (15,2.8); (25,9.66)

Please check there are no errors in my code.

Last edited:

Status
Not open for further replies.