- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 40148
- 在线时间
- 小时
|
楼主 |
发表于 2015-1-20 13:45:05
来自手机
|
显示全部楼层
- fun(a0,h,n)={ local(a,b,b0); a=vector(n);b=vector(n); b0=a0*a0; a[1]=(h-a0)*(1+b0); b[1]=2.0*a0*a[1]; a[2]=((h-a0)*b[1]+(1-a[1])*(1+b0))/2.0; b[2]=2*a0*a[2]+a[1]^2; for(s=3,n, a[s]=(h-a0)*b[s-1]+1*b[s-2]; a[s]-=(1+b0)*a[s-1]; for(t=1,s-2,a[s]-=b[t]*a[s-1-t]); a[s]/=s; b[s]=2*a0*a[s]; for(t=1,s-1,b[s]+=a[t]*a[s-t]) ); a } use_fun(a0,h,a,x)={ local(y,s,l); y=x-h;s=0.0;l=length(a); for(u=1,l, s*=y;s+=a[l+1-u]; ); s*=y;s+=a0; s } gen_params(n)={ local(a,a0,b,b0,c,c0,d,d0,e,e0,f,f0,g,g0,h,h0,m,m0,k); a=fun(0.0,0.0,n); a0=use_fun(0.0,0.0,a,0.5); b=fun(a0,0.5,n); b0=use_fun(a0,0.5,b,1.0); c=fun(b0,1.0,n); c0=use_fun(b0,1.0,c,1.7); d=fun(c0,1.7,n); d0=use_fun(c0,1.7,d,2.2); e=fun(d0,2.2,n); e0=use_fun(d0,2.2,e,2.6); f=fun(e0,2.6,n); f0=use_fun(e0,2.6,f,3.0); g=fun(f0,3.0,n); g0=use_fun(f0,3.0,g,3.5); h=fun(g0,3.5,n); h0=use_fun(g0,3.5,h,4.2); m=fun(h0,4.2,n); m0=use_fun(h0,4.2,m,5.0); k=fun(m0,5.0,n); [a,a0,b,b0,c,c0,d,d0,e,e0,f,f0,g,g0,h,h0,m,m0,k] } gen_u_params(v_params,d)={ local(n,a0,b,b0,c,c0,dd,d0,e,e0,f,f0,g,g0,h,h0,m,m0,k); n=length(v_params[1]); e=2*Pi-2*d; a0=fun_v(v_params,e);a=fun(a0,e,n); b=gen_u_from_v(tan(d),a0,a);m0=use_fun(tan(d),e,b,5.0); k=gen_u_from_v(m0,v_params[18],v_params[19]); h0=use_fun(m0,5.0,k,4.2); m=gen_u_from_v(h0,v_params[16],v_params[17]); g0=use_fun(h0,4.2,m,3.5); h=gen_u_from_v(g0,v_params[14],v_params[15]); f0=use_fun(g0,3.5,h,3.0); g=gen_u_from_v(f0,v_params[12],v_params[13]); e0=use_fun(f0,3.0,g,2.6); f=gen_u_from_v(e0,v_params[10],v_params[11]); d0=use_fun(e0,2.6,f,2.2); e=gen_u_from_v(d0,v_params[8],v_params[9]); c0=use_fun(d0,2.2,e,1.7); dd=gen_u_from_v(c0,v_params[6],v_params[7]); b0=use_fun(c0,1.7,dd,1.0); c=gen_u_from_v(b0,v_params[4],v_params[5]); a0=use_fun(b0,1.0,c,0.5); b=gen_u_from_v(a0,v_params[2],v_params[3]); [a0,b,b0,c,c0,dd,d0,e,e0,f,f0,g,g0,h,h0,m,m0,k] } gen_u_from_v(u0,v0,v)={ local(u,n); n=length(v); u=vector(n); u[1]=u0*v0-1; for(h=2,n, u[h]=u0*v[h-1]+v0*u[h-1]; for(s=1,h-2, u[h]+=u[s]*v[h-1-s] ); u[h]/=h ); u } fun_v(params, x)={ local(r); if(x<0.25, r=use_fun(0.0,0.0,params[1],x), if(x<0.7, r=use_fun(params[2],0.5,params[3],x), if(x<1.4, r=use_fun(params[4],1.0,params[5],x), if(x<2.0, r=use_fun(params[6],1.7,params[7],x), if(x<2.4, r=use_fun(params[8],2.2,params[9],x), if(x<2.8, r=use_fun(params[10],2.6,params[11],x), if(x<3.2, r=use_fun(params[12],3.0,params[13],x), if(x<3.8, r=use_fun(params[14],3.5,params[15],x), if(x<4.5, r=use_fun(params[16],4.2,params[17],x), r=use_fun(params[18],5.0,params[19],x) ))))))))); r } fun_u(params, x)={ local(r); if(x<0.7, r=use_fun(params[1],0.5,params[2],x), if(x<1.4, r=use_fun(params[3],1.0,params[4],x), if(x<2.0, r=use_fun(params[5],1.7,params[6],x), if(x<2.4, r=use_fun(params[7],2.2,params[8],x), if(x<2.8, r=use_fun(params[9],2.6,params[10],x), if(x<3.2, r=use_fun(params[11],3.0,params[12],x), if(x<3.8, r=use_fun(params[13],3.5,params[14],x), if(x<4.5, r=use_fun(params[15],4.2,params[16],x), r=use_fun(params[17],5.0,params[18],x) )))))))); r }
复制代码 |
|