diff options
author | Norbert Preining <norbert@preining.info> | 2018-02-12 14:52:54 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2018-02-12 14:52:54 +0900 |
commit | 8c3c49fd56de185396400a0e8a636ac03d8239ab (patch) | |
tree | adf96aee3f0bfbdc9df3a9e2dd86332a9dfee9cd /texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci | |
parent | 5a993b26c76714f0810fdc7e3ae7bdc5eb1afd10 (diff) |
update ketcindy
Diffstat (limited to 'texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci')
-rw-r--r-- | texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci deleted file mode 100644 index 43d8ea6e..00000000 --- a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Deqplot.sci +++ /dev/null @@ -1,195 +0,0 @@ - -// 08.09.22 -// 09.03.10 -// 09.10.09 ( ` and order ) -// 09.10.09b ( system ) -// 09.11.12 ( debug for x<0 ) -// 13.10.19 ( __ added to variables ) -// 15.11.16 N changed to number of intervals -// 15.12.08 bug of optiion ( __ ) fixed - -function P__=Deqplot(varargin) - global XMIN XMAX YMIN YMAX - Nargs__=length(varargin); - Eps__=10^(-5); - Fnstr__=varargin(1); - Fnstr__=strsubst(Fnstr__,Prime(),'`'); - K__=mtlb_findstr(Fnstr__,'='); - Str__=part(Fnstr__,1:(K__-1)); - Fnstr__=part(Fnstr__,(K__+1):length(Fnstr__)); - JL__=mtlb_findstr(Str__,'`'); - Yname__=part(Str__,1:(JL__(1)-1)); - Yname__=strsubst(Yname__,',',';'); - Tmp__=mtlb_findstr(Yname__,';'); - if length(Tmp__)>0 - Dim__=length(Tmp__)+1; - Order__=1; - Fnstr__=strsubst(Fnstr__,',',';'); - else - Dim__=1; - Order__=length(JL__); - end; - Rgstr__=varargin(2); - K__=mtlb_findstr(Rgstr__,'='); - if K__~=[] - Xname__=part(Rgstr__,1:K__-1); - Rng__=evstr(part(Rgstr__,K__+1:length(Rgstr__))); - else - Xname__=Rgstr__; - Rng__=[XMIN,XMAX]; - end; - X0__=varargin(3); - Y0__=varargin(4); - if size(Y0__,2)>1 - Y0__=Y0__'; - end; - N__=50; - if Nargs__>=5 - Tmp__=varargin(5); - Tmp__=strsubst(Tmp__,"=","__="); // 15.12.08 - Tmp__=strsubst(Tmp__,"____","__"); - execstr(Tmp__); - end; - X1__=Rng__(1); X2__=Rng__(2); - dX__=(X2__-X1__)/(N__-1); - dX__=(X2__-X1__)/(N__); // 15.11.16 - if Dim__>1 - Tmp__=mtlb_findstr(Yname__,'['); - Data__=part(Yname__,Tmp__+1:length(Yname__)); - Tmp__=mtlb_findstr(Data__,']'); - Data__=part(Data__,1:Tmp__-1); - Data__=';'+Data__+';'; - NL__=mtlb_findstr(Data__,';'); - NameL__=list(); - for I__=1:length(NL__)-1 - Tmp__=part(Data__,NL__(I__)+1:NL__(I__+1)-1); - NameL__(I__)=Tmp__; - end; - Fnrep__=Fnstr__; - for I__=1:length(NameL__) - Tmp__=NameL__(I__); - Fnrep__=strsubst(Fnrep__,Tmp__,'Pt('+string(I__)+')'); - end; - Tmp1__='Outf=Dfp__('+Xname__+',Pt)'; - Tmp2__='Outf='+Fnrep__; - deff(Tmp1__,Tmp2__); - Y0p__=Y0__; - Tmp1__='Outf=Dfn__('+Xname__+',Pt)'; - Tmp2__='Outf=-('+Fnrep__+')'; - deff(Tmp1__,Tmp2__); - Y0n__=Y0__; - else - YL__=mtlb_findstr(Fnstr__,Yname__); - Fnrep__=part(Fnstr__,1:YL__(1)-1); - for I__=1:length(YL__) - Py__=YL__(I__); - J__=1; - K__=Py__+1; - while part(Fnstr__,K__:K__)=='`' - J__=J__+1; K__=K__+1; - end; - Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; - if I__==length(YL__) - Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); - else - J__=YL__(I__+1)-1; - if J__>=K__ - Fnrep__=Fnrep__+part(Fnstr__,K__:J__); - end; - end; - end; - Eqvec__='['; - for I__=1:Order__-1 - Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; - end; - Eqvec__=Eqvec__+Fnrep__+']'; - Tmp1__='Outf=Dfp__('+Xname__+','+Yname__+')'; - Tmp2__='Outf='+Eqvec__; - deff(Tmp1__,Tmp2__); - Y0p__=Y0__; - YL__=mtlb_findstr(Fnstr__,Yname__); - Fnrep__=part(Fnstr__,1:YL__(1)-1); - for I__=1:length(YL__) - Py__=YL__(I__); - J__=1; - K__=Py__+1; - while part(Fnstr__,K__:K__)=='`' - J__=J__+1; K__=K__+1; - end; - if modulo(J__,2)==1 - Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; - else - Fnrep__=Fnrep__+'(-'+Yname__+'('+string(J__)+'))'; - end; - if I__==length(YL__) - Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); - else - J__=YL__(I__+1)-1; - if J__>=K__ - Fnrep__=Fnrep__+part(Fnstr__,K__:J__); - end; - end; - end; - if modulo(Order__,2)==1 - Fnrep__='-('+Fnrep__+')'; - end; - Fnrep__=strsubst(Fnrep__,Xname__,'(-'+Xname__+')'); // 09.11.12 - Eqvec__='['; - for I__=1:Order__-1 - Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; - end; - Eqvec__=Eqvec__+Fnrep__+']'; - Tmp1__='Outf=Dfn__('+Xname__+','+Yname__+')'; - Tmp2__='Outf='+Eqvec__; - deff(Tmp1__,Tmp2__); - Y0n__=[]; - for I__=1:size(Y0__,1) - Y0n__=[Y0n__;(-1)^(I__-1)*Y0__(I__)]; - end; - end; - if X0__<=X1__ - X__=X1__:dX__:X2__; - Y__=ode(Y0p__,X0__,X__,Dfp__); - M__=min(size(X__,2),size(Y__,2)); - if Dim__>1 - PL__=Y__'; - P__=PL__(1:M__,:); - else - P__=[X__(:,1:M__);Y__(1,1:M__)]'; - end; - return; - end; - if X2__<=X0__ - X__=(-X2__):dX__:(-X1__); - Y__=ode(Y0n__,-X0__,X__,Dfn__); - X__=-X__; - M__=min(size(X__,2),size(Y__,2)); - if Dim__>1 - PL__=Y__'; - P__=PL__(1:M__,:); - else - P__=[X__(:,1:M__);Y__(1,1:M__)]'; - end; - return; - end; - XP__=X0__:dX__:X2__; - YP__=ode(Y0p__,X0__,XP__,Dfp__); - M__=min(size(XP__,2),size(YP__,2)); - XP__=XP__(:,1:M__); - YP__=YP__(:,1:M__); - XN__=(-X0__)+dX__:dX__:(-X1__); - YN__=ode(Y0n__,-X0__,XN__,Dfn__); - M__=min(size(XN__,2),size(YN__,2)); - XN__=XN__(:,1:M__); - YN__=YN__(:,1:M__); - XN__=-XN__; - XN__=XN__(length(XN__):-1:1); - YN__=YN__(:,size(YN__,2):-1:1); - if Dim__>1 - P__=[YN__';YP__'] - else - X__=[XN__,XP__]; - Y__=[YN__(1,:),YP__(1,:)]; - P__=[X__;Y__]'; - end; -endfunction; |