mathe 发表于 2014-1-7 21:28:32

由于sin(2h)和cos(2h)分母相同,sin(2h-B)也可以表示为s,t的二次分式 sin(2h)cos(B)-cos(2h)sin(B)
$$\sin(2h-B)=\frac{u_1(\frac{t}{s})cos(B)-u_2(\frac{t}{s})sin(B)}{v(\frac{t}{s})}=\frac{u_3(\frac{t}{s})}{v(\frac{t}{s})}$$
其中$u_3,v$都是二次函数
同样可以设角AFE为g并且$$\sin(2g-C)=\frac{w_3(\frac{t}{s})}{z(\frac{t}{s})}$$
需要注意,这里如果仅仅根据上一个表达式B和C对称变换过来,得出的是关于$\frac{s}{t}$的表达式,还需要再处理一下才行

mathe 发表于 2014-1-7 21:34:17

然后在三角形EBB1内用正弦定理得出sin(2h-B)/(1-s)=sin(B)/(s-u)得出u可以表示为s,t的分式,分子3次分母两次。同样v也一样。最后s*t-u*v是关于s,t的分式,分子6次,分母4次。
$$u=s-(1-s)\frac{sin(B)v(\frac{t}{s})}{u_3(\frac{t}{s})}$$
$$v=t-(1-t)\frac{sin(C)z(\frac{t}{s})}{w_3(\frac{t}{s})}$$
$$k=s*t-u*v=(1-s)s\frac{t}{s}\frac{sin(B)v(\frac{t}{s})}{u_3(\frac{t}{s})}+s(1-s\frac{t}{s})\frac{sin(C)z(\frac{t}{s})}{w_3(\frac{t}{s})}-(1-s)(1-s\frac{t}{s})\frac{sin(B)sin(C)v(\frac{t}{s})z(\frac{t}{s})}{u_3(\frac{t}{s})w_3(\frac{t}{s})}$$
$$k=\frac{r_1(\frac{t}{s})s^2+r_2(\frac{t}{s})s+r_3(\frac{t}{s})}{u_3(\frac{t}{s})w_3(\frac{t}{s})}$$
其中$r_1,r_2,r_3$是不超过5次的多项式

mathe 发表于 2014-1-8 06:39:54

另外我们可以做变量替换将(s,t)替换为(s,t/s),由此面积比变成s的二次方程,可以求出s的极值情况带入变成t/s的分式。然后再求导应该是一个18次方程
将$$s=-\frac{r_2(\frac{t}{s})}{2r_1(\frac{t}{s})}$$代入k的表达式得出
$$k=\frac{4r_3(\frac{t}{s})r_1(\frac{t}{s})-r_2^2(\frac{t}{s})}{4r_1(\frac{t}{s})w_3(\frac{t}{s})u_3(\frac{t}{s})}$$
分子10次,分母9次,所以导数等于是变量$\frac{t}{s}$18次方程,求其所有实数根,然后求对应的s,t,u,v要求$0<=u<=s<=1,0<=v<=t<=1$才符合条件

mathe 发表于 2014-1-10 17:24:31

今天试着写了个Pari/gp的代码
min_val()={1e-5;}
polremove_zero(p)={
    local(q,d);
    q=0;d=poldegree(p);
    q=polcoeff(p,0);
    for(u=1,d,
       if(abs(polcoeff(p,u))>min_val(),
         q=q+polcoeff(p,u)*r^u)
    );
    q
}
find_best_3(a,b)={
    local(c,best);
    local(ca,sa,cb,sb,cc,sc);
    local(w1,w2,v,w3);
    local(u1,u2,z,u3);
    local(a1,a2,a3);
    local(m1,m2,m3,pr,rr,ts,tt,tr,smu,tmv);
    c=180-a-b;best=0.0;
    print("A="a";B="b";C="c);
    a=a*Pi/180;b=b*Pi/180;c=c*Pi/180;
    ca=cos(a);sa=sin(a);cb=cos(b);sb=sin(b);cc=cos(c);sc=sin(c);
    w1=2*sb*sa*(sc*r-sb*ca);w2=(sc*r-sb*ca)^2-(sb*sa)^2;
    v=(sc*r-sb*ca)^2+(sb*sa)^2;
    w3=w1*cb-w2*sb;
    u1=2*sc*sa*r*(sb-sc*ca*r);u2=(sb-sc*ca*r)^2-(sc*sa*r)^2;
    z=(sc*sa*r)^2+(sb-sc*ca*r)^2;
    u3=u1*cc-u2*sc;
    a1=((-v*sb-w3)*z*sc-v*sb*u3)*r;
    a2=((v*sb+w3)*z*sc*r+(v*sb*z*sc+v*sb*u3));
    a3=-v*sb*z*sc;
    m1=(4*a1*a3-a2^2);m2=(4*a1*w3*u3);
    m3=deriv(m1,r)*m2-m1*deriv(m2,r);
    m3=polremove_zero(m3);
    if(poldegree(m3)>0,
    pr=polroots(m3);
    for(u=1,length(pr),
         if(abs(imag(pr))<min_val(),
             rr=real(pr);
             if(subst(a1,r,rr)!=0,
               tt=subst(a2/(-2*a1),r,rr);
               ts=tt*rr;
               tr=subst(m1/m2,r,rr);
               smu=subst(sb*v/w3*(1-ts),r,rr);
               tmv=subst(sc*z/u3*(1-tt),r,rr);
               if(0<=tmv&&tmv<=tt&&tt<=1&&0<=smu&&smu<=ts&&ts<=1&&sb*sa/(sc*rr-sb*ca)>tan(b/2)&&sc*sa*rr/(sb-sc*ca*rr)>tan(c/2),print("t="tt";s="ts";u="ts-smu";v="tt-tmv";r="tr);if(tr>best,best=tr))
             )
         )
    )
    );best
}

find_best_bisector(A,B)=
{
    local(C,tr,best);
    C=180-A-B;
    A=A*Pi/180;B=B*Pi/180;C=C*Pi/180;
    if(A<B,tr=A;A=B;B=tr);
    if(A<C,tr=A;A=C;C=tr);
    if(B<C,tr=B;B=C;C=tr);
    tr=sin(B)/(sin(A)+sin(B));best=sin(C)/(sin(B)+sin(C));
    if(tr>best,best=tr);
    best
}

find_best_perp(A,B)=
{
    local(C,tr,best);
    C=180-A-B;
    A=A*Pi/180;B=B*Pi/180;C=C*Pi/180;
    if(A<B,tr=A;A=B;B=tr);
    if(A<C,tr=A;A=C;C=tr);
    if(B<C,tr=B;B=C;C=tr);
    tr=(tan(A)+tan(B))/(3*tan(A)+tan(B));
    best=(tan(B)+tan(C))/(3*tan(B)+tan(C));
    if(tr>best,best=tr);
    best
}

find_best_outside_triangle(A,B)=
{
    local(C,best);
    C=180-A-B;best=0;
    A=A*Pi/180;B=B*Pi/180;C=C*Pi/180;
    if(A<B,tr=A;A=B;B=tr);
    if(A<C,tr=A;A=C;C=tr);
    if(B<C,tr=B;B=C;C=tr);
    if(C<Pi/4&&A<Pi/2,
       best = 1/(1+1/tan(A)+1/tan(C))
    );
    best
}

find_best_by_angle(A,B)=
{
    local(C,tr,best);
    C=180-A-B;
    best=find_best_bisector(A,B);
    print("best bisector result "best);
    tr=find_best_perp(A,B);
    print("best perpandicular result "tr);
    if(tr>best,best=tr);
    tr=find_best_outside_triangle(A,B);
    if(tr>0,print("best outside triangle result "tr));
    if(tr>best,best=tr);
    tr=find_best_3(A,B);
    if(tr>best,best=tr);
    tr=find_best_3(B,C);
    if(tr>best,best=tr);
    tr=find_best_3(C,A);
    if(tr>best,best=tr);
    best
}

find_best_by_edge(a,b,c)=
{
    local(A,B,C,tr,best);
    A=acos((b^2+c^2-a^2)/(2*b*c));
    B=acos((c^2+a^2-b^2)/(2*c*a));
    find_best_by_angle(A,B)
}

mathe 发表于 2014-1-10 17:27:02

(17:25) gp > find_best_by_edge(2,3,4)
best bisector result 0.3834009244559788420271162548
best perpandicular result 0.4477824475313358639687688324
A=0.5053605102841573069713148740;B=0.8127555613686606587743493807;C=178.68188392
83471820342543358
A=0.8127555613686606587743493807;B=178.6818839283471820342543358;C=0.50536051028
41573069713148740
A=178.6818839283471820342543358;B=0.5053605102841573069713148740;C=0.81275556136
86606587743493807
%26 = 0.4477824475313358639687688324
(17:25) gp > find_best_by_angle(30,40)
best bisector result 0.4375266197864600483287007481
best perpandicular result 0.4577093640951743284656298795
A=30;B=40;C=110
A=40;B=110;C=30
t=0.5013105936492297705211802976;s=0.7552891527877354175137264341;u=0.4986894063
507702294788197024;v=0.2447108472122645824862735659;r=0.256599746436965188034906
7290
t=0.4375266197864600483286904870;s=0.9999999999999999999998478268;u=0.562473268;
v=1.521729978 E-22;r=0.4374756644
t=0.4375266197864600483286904870;s=0.9999999999999999999998478268;u=0.562473268;
v=1.521729978 E-22;r=0.4374756644
A=110;B=30;C=40
t=0.9999999999999930089980638760;s=0.3472963553338663283073523439;u=6.9910019361
24001213 E-15;v=0.6527036446661331842;r=0.3472963553338593905
t=0.7868980797780607548943594088;s=0.5386550525145096753223579870;u=0.2131019202
219392451056405911;v=0.4613449474854903246776420129;r=0.325553132292570430216717
3959
t=0.4061899778012661188465732818;s=0.9999999999999939671424883130;u=0.5938100221
987341701;v=6.032857511687044160 E-15;r=0.4061899778012589536403229241
%27 = 0.4577093640951743284656298795

mathe 发表于 2014-1-10 17:29:27

比较有趣的是我试验了多个结果,最终结果总是在对角线或和一边垂直的折线上取到。
而多余最复杂的那个极值问题,求解极值点好像总会取到t=1或s=1这两种情况,也就是包含了对角线情况

数学星空 发表于 2014-1-10 23:24:04

根据楼上mathe的计算方案:
可以得到
s*(a^2*s*t-b^2*s*t+b^2*t^2+c^2*s^2-c^2*s*t)*(a^2*s^2+a^2*s*t+a^2*t^2-b^2*s^2+b^2*s*t+c^2*s*t-c^2*t^2-a^2*s-a^2*t+b^2*s-b^2*t-c^2*s+c^2*t)=0

(a*t-c*s+c*t)*(a*t+c*s-c*t)*(a*s-b*s+b*t)*(a*s+b*s-b*t)*(a^2*s*t-b^2*s*t+b^2*t^2+c^2*s^2-c^2*s*t)*(a^2*k*s^2+a^2*k*s*t+a^2*k*t^2-b^2*k*s^2+b^2*k*s*t+c^2*k*s*t-c^2*k*t^2-a^2*s*t+b^2*s*t-b^2*t^2-c^2*s^2+c^2*s*t)=0
进而我们可以得到以下几种情况
(1) s = 1, t = c/(a+c)
(2)s = 1, t = c/(c-a)
(3)s = b/(b-a), t = 1
(4)s = b/(a+b), t = 1
(5)(a^2-b^2)*k^2+(-a^2*t+3*b^2*t+c^2*t+a^2-b^2-c^2)*k+a^2*t^2-2*b^2*t^2-2*c^2*t^2-a^2*t+b^2*t+3*c^2*t-c^2=0
前面1~4就是mathe数值计算的结果
对于(5)表达了什么信息呢?

mathe 发表于 2014-1-11 08:07:34

计算结果很棒,证明了极值情况已经包含了过顶点情况的极值。上面方程就是一阶偏导为零的解了?能否计算出对应情况下的二阶偏导数呢?如果可以证明那时总是行列式值小于零,那么必然不是极值点,就可以淘汰(5)了

数学星空 发表于 2014-1-11 09:41:03

对于(5)
A   (a^2-b^2)*k^2+(-a^2*t+3*b^2*t+c^2*t+a^2-b^2-c^2)*k+a^2*t^2-2*b^2*t^2-2*c^2*t^2-a^2*t+b^2*t+3*c^2*t-c^2=0

B   A的判别式:(-3*a^4+6*a^2*b^2+6*a^2*c^2+b^4-2*b^2*c^2+c^4)*t^2+(2*a^4-8*a^2*c^2-2*b^4+4*b^2*c^2-2*c^4)*t+a^4-2*a^2*b^2+2*a^2*c^2+b^4-2*b^2*c^2+c^4

C   B的判别式:16*a^2*(a-b)*(b+a)*(b+a-c)*(b+a+c)*(-b+a+c)*(-b+a-c)

另外,我们还有
D    u = (a^2*s^2*t+a^2*s*t^2-b^2*s^2*t+b^2*s*t^2+c^2*s^2*t-c^2*s*t^2-a^2*s*t+b^2*s*t-b^2*t^2-c^2*s^2+c^2*s*t)/(a^2*t^2-c^2*s^2+2*c^2*s*t-c^2*t^2)

E    v =(a^2*s^2*t+a^2*s*t^2-b^2*s^2*t+b^2*s*t^2+c^2*s^2*t-c^2*s*t^2-a^2*s*t+b^2*s*t-b^2*t^2-c^2*s^2+c^2*s*t)/(a^2*s^2-b^2*s^2+2*b^2*s*t-b^2*t^2)

若先假定当折痕线垂直于a边时(即22#,第2种情形),k=a^2/(2*a^2+b^2-c^2) 代入A 可以得到下面两式

F    4*a^6*s^2-4*a^4*b^2*s^2-12*a^4*c^2*s^2-7*a^2*b^4*s^2-2*a^2*b^2*c^2*s^2+9*a^2*c^4*s^2-2*b^6*s^2+2*b^4*c^2*s^2+2*b^2*c^4*s^2-2*c^6*s^2-6*a^6*s+9*a^4*b^2*s+15*a^4*c^2*s+
      12*a^2*b^4*s-4*a^2*b^2*c^2*s-8*a^2*c^4*s+3*b^6*s-5*b^4*c^2*s+b^2*c^4*s+c^6*s+3*a^6-5*a^4*b^2-4*a^4*c^2-5*a^2*b^4+4*a^2*b^2*c^2+a^2*c^4-b^6+2*b^4*c^2-b^2*c^4=0

G    4*a^6*t^2-4*a^4*b^2*t^2-12*a^4*c^2*t^2-7*a^2*b^4*t^2-2*a^2*b^2*c^2*t^2+9*a^2*c^4*t^2-2*b^6*t^2+2*b^4*c^2*t^2+2*b^2*c^4*t^2-2*c^6*t^2-6*a^6*t+5*a^4*b^2*t+19*a^4*c^2*t+   
      6*a^2*b^4*t+8*a^2*b^2*c^2*t-14*a^2*c^4*t+b^6*t+b^4*c^2*t-5*b^2*c^4*t+3*c^6*t+3*a^6-2*a^4*b^2-7*a^4*c^2-a^2*b^4-4*a^2*b^2*c^2+5*a^2*c^4-b^4*c^2+2*b^2*c^4-c^6=0

通过部份数值计算:
例:
a=4,b=3,c=2 代入D,E,F,G分别算得 s = 0.4216718296, t = 0.1378880458, u = 2.481323469, v = -0.5808983322
a=2,b=3,c=4 代入D,E,F,G分别算得 s = 1.611231238, t = 1.154709498, u = 6.035072856, v = 1.417754104
a=5,b=4,c=3 代入D,E,F,G分别算得 s =0 .4518444289, t = 0.2946514465, u = -0.4560498243, v = -0.1886773365
a=3,b=4,c=5 代入D,E,F,G分别算得 s = 0.6488765584, t = 0.6488765584, u = 0.2977531155, v =0.2977531157
a=8,b=7,c=6 代入D,E,F,G分别算得 s = 0.4767134960, t = 0.4097390546, u = -0.1317420972, v = -0.9733320449e-1
a=6,b=7,c=8 代入D,E,F,G分别算得 s =0 .5378807862, t =0 .5669666588, u =0 .1051599423, v = 0.1167585144
显然第一条件为a<=b,并且不是总存在有意义的解

-----------------------------------------
根据即22#,第2种情形,存在的条件为a/b>sqrt(2),b/c>sqrt(2),显然不满足a<=b,
即(5)不可能是第2种情形,那如何进一步计算此情形?

mathe 发表于 2014-1-11 10:41:25

好强大的因子分解。星空的第一个关于s,t的等式是不是就我前面关于s的二次方程取最大值的条件?而第二条t,k的方程是利用这条件消去s的结果?
页: 1 2 3 4 5 [6] 7 8 9
查看完整版本: 折纸重叠面积问题