solve the Bessel function ...plzz.

Status
Not open for further replies.

rafa040

Newbie level 6
Joined
Dec 25, 2012
Messages
13
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,372


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 ..??

thanks in advance


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.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…