#OpenFC.dll ú
< OpenFC.dll úʹ˵
OpenForcalչ̬⣬ͨʱҪÿ·
⺯˵fcerrʾFORCALصд롣
ĲҪFORCALԸòȡ㡣
>
<openfc : 汾Ϣ
openfc() : 汾Ϣ
>
<openļ
open(...)ļ

   ʽ(1)open("aaa.txt")Դʽļaaa.txtѾļaaa.txtļ⵽ƻȱΪ0
   ʽ(2)open("aaa.txt","a")ӷʽļaaa.txtѾļaaa.txtӵļβļڣȴļ
>
<close : رļ
close( ) : رļ
>
<write : ļһʵ
write(x) : ļһʵ
>
<fendl : ļһз
fendl( ) : ļһз
>
<fstr : ļһַ
fstr("aaa bbb") : ļһַ
>
<left : ļУķʽ
left() : ļУķʽ
>
<right : ļУҶķʽ
right() : ļУҶķʽ
>
<widthļУСֵ
width(i)ļУСֵ

ÿǰҪСֵ򽫰ȱʡá
>
<precisionļУʵ
precision(i)ļУʵ
>
<writearrayһʵֵдһļ
writearray(...)һʵֵдһļ

   ʽ(1)writearray(i)iֵļ
   ʽ(2)writearray(i,n)iǰnֵļ
>
<outarrayһʵֵ
outarray(...)һʵֵ

   ʽ(1)outarray(i)iֵڣ
   ʽ(2)outarray(i,n)iǰnֵڡ
>
<setruntimeʱ
setruntime()ʱ

   ú¼ʱֵúgetruntime()ʹãgetruntime()ʱ䡣
   úǷ0
>
<getruntimeʱ
getruntime()ʱ

   úsetruntime()֮ʹãgetruntime()Իִsetruntime()ʱ䡣
>
<simp2䲽ػ
simp2[a,b,#"Y1",#"Y2",#"z",eps]䲽ػ

      / b / Y2(x)
      |   |
      |   |      z(x,y) dxdy
      |   |
      / a / Y1(x)

   epsΪ־ȡ
   úصдfcerr£
   fcerr=-1δԿɽܱʽĶãfcerr=-2ֱӻӵݹôƣݹãfcerr=1ָıʽڣfcerr=2ʽδб룻fcerr=3ʽĲҪfcerr=4ȱ0

   磺
   "f1"(x)=-sqrt[1-x*x];
   "f2"(x)=sqrt[1-x*x];
   "f"(x,y)=exp[x*x+y*y];
   simp2[0,1,#"f1",#"f2",#"f",0.00001];
>
<multiint˹ػ
multiint(n,a0,b0,#"a1",#"b1",#"a2",#"b2",...#"an-1",#"bn-1",#"f",m0,m1,...mn-1)˹ػ

      / b0 / b1(x0) /b2(x0,x1)   / bn-1(x0,x1,...xn-2)
      |    |        |            |
      | dx0|     dx1|     dx2 ...|              f(x0,x1,...xn-1) dxn-1
      |    |        |            |
      / a0 / a1(x0) /a2(x0,x1)   / an-1(x0,x1,...xn-2)

   ˵nΪm0,m1,...mn-1Ϊ仮ֵ>=2
   úصдfcerr£
   fcerr=-1δԿɽܱʽĶãfcerr=-2ֱӻӵݹôƣݹãfcerr=1ָıʽڣfcerr=2ʽδб룻fcerr=3ƥ䣻fcerr=4ⲿıʽĲҪfcerr=5òҪfcerr=6ڴʧܡ

   磺
   "y1"(x)=0;
   "y2"(x)=sqrt[1-x*x];
   "z1"(x,y)=sqrt[x*x+y*y];
   "z2"(x,y)=sqrt[2-x*x-y*y];
   "f"(x,y,z)=z*z;
   multiint{3,0,1,#"y1",#"y2",#"z1",#"z2",#"f",5,5,5};
>
<gcvtһתһַ
gcvt[x,n,"str"]һתһַ

   xΪҪתnΪصֵλ[0<n<30]"str"Ϊһַַ
   úصдfcerr£
   fcerr=1ַָڣfcerr=2λǷfcerr=3ڴʧܡ
>
<HalfSolveԷַԷ̵ȫʵ
HalfSolve[#"f",a,b,h,eps,array,n]ԷַԷ̵ȫʵ

    ˵#"f"ΪһԪ̣aΪ˵㣬bΪҶ˵㣨b>ahΪʱõĲh>0epsΪƾȣeps>0arrayΪ飬nΪ鳤ȣn>=1
    ʵʵֵnп[a,b]ڵʵδꡣʱʵδarrayС
    úصдfcerr£
    fcerr=-1δԿɽܱʽĶãfcerr=-2ֱӻӵݹôƣݹãfcerr=1ָıʽڣfcerr=2ʽδб룻fcerr=3һԪ̣fcerr=4òҪfcerr=5û飻fcerr=6ָ鲻ڣfcerr=7ԪظҪ
>
<GradSolveӦһݶŲֵ
GradSolve[#"f",array,dx,h,hx,eps,mod,nummax]ӦһݶŲֲֵСֵͬʱڽԷ

    ˵#"f"ΪĿ꺯ΪʽarrayΪ飬СΪĿ꺯Ա3֮ǰarrayҪԤȴһֵֵĿ꺯ԱȣʱĿ꺯һʵĿ꺯ֵdxΪ΢Сdx!=0 dx ܴﵽ辫ȣ dx СܻĽhΪֵh>0hxΪϵ0<eps<1һȡ hx=0.5 epsΪƾȣeps>0modΪģʽmod>0ʱʾepsΪԾȣΪԾȣnummaxΪĵ
    ʵʵĵֵnummaxû㾫Ҫ
    Ŀ꺯Уÿ̾x1,x2,... ...,xnΪԱ
      #"f"(x1,x2,... ...,xn)=[1]^2+[2]^2+ ... ... +[n]^2 
    ʹʽܱ֤õĽ
    úصдfcerr£
    fcerr=-1δԿɽܱʽĶãfcerr=-2ֱӻӵݹôƣݹãfcerr=1ָıʽڣfcerr=2ʽδб룻fcerr=3Ŀ꺯Ϊʽfcerr=4òҪfcerr=5û飻fcerr=6ָ鲻ڣfcerr=7ԪظҪ
    ӣ

	//Ŀ꺯壺
	"f"(x0,x1,x2)=[x0-5*x1*x1+7*x2*x2+12]^2
	    +[3*x0*x1+x0*x2-11*x0]^2
	    +[2*x1*x2+40*x0]^2;
	newdoublearrays[1]; //һ
	newdoublearray[0,9,1.5,6.5,-5]; //ԪظΪ9ֵΪ1.5,6.5,-5
	GradSolve[#"f",0,1e-6,0.1,0.5,1e-6,0,8000]; //Ųֵ
	outarray[0]; //
>
<GetForParaNumõָʽԱĿ
GetForParaNum[#"f"]õָʽԱĿ
úصдfcerr£
    fcerr=-1δԿɽܱʽĶãfcerr=1ָıʽڣfcerr=2ʽδб롣
>
<CountParaͳƲ
CountPara[x1,x2,... ...,xn]ͳƲ
>