0001 function p=findbif(p,ichange)
0002
0003
0004
0005
0006
0007
0008 smod=p.smod;
0009 bif=p.bifchecksw;
0010 ds=p.ds; pnamesw=p.pnamesw; headfu=p.headfu; ufu=p.ufu; count=p.count;
0011 timesw=p.timesw; pmod=p.pmod; nsteps=p.nsteps; dsmin=p.dsmin;
0012
0013 p.smod=0;
0014
0015 p.bifchecksw=0;
0016 p.pnamesw=0;
0017 p.headfu=@findbifheadfu;
0018 p.ufu=@findbiffu; p.timesw=0; p.pmod=0; p.nsteps=1;
0019 p.dsmin=p.dsmin/10;
0020
0021 st=0;
0022 af=0;
0023 ineg1=p.ineg;
0024 while (st==0 && abs(p.ds)>p.dsmin)
0025 ft=p; ft=cont(ft);
0026 figure(ft.ifig); plot(real(ft.muv),imag(ft.muv),'*');
0027 if(p.vsw>0)
0028 disp(['lam=' num2str(ft.lam) ' # negative EVals=' num2str(ft.ineg)] );
0029 end
0030 if ft.ineg==ineg1
0031 p=ft;
0032 if af==1; p.ds=p.ds/4;end
0033 af=0;
0034 end
0035 if abs(ft.ineg-ineg1)>1
0036 p.ds=p.ds/2; af=1; end
0037 if ft.ineg==ineg1+ichange;
0038 st=1; end
0039 if (ft.ineg-ineg1)*ichange<0;
0040 p.ds=-p.ds;
0041 end
0042 end
0043
0044
0045 p.smod=smod; p.bifchecksw=1; p.headfu=headfu;
0046 p.ufu=ufu; p.timesw=timesw; p.pmod=pmod; p.count=count;
0047 p=cont(p);
0048 p.bifchecksw=bif;
0049 p.pnamesw=pnamesw; p.ds=ds; p.nsteps=nsteps;
0050 end
0051
0052
0053 function cstop=findbiffu(p,brout,ds)
0054 cstop=0;
0055 end
0056
0057 function findbifheadfu(p)
0058 end