【问题标题】:Maple unable to evalute function in whole range of plotMaple 无法评估整个绘图范围内的功能
【发布时间】:2019-10-25 08:55:00
【问题描述】:

Maple 可以帮助解决拉普拉斯方程在正方形区域中的解,并以封闭形式(就无限和而言)给我答案。如果我尝试将两个变量的函数绘制为 3d 图,它会给我大部分表面但不是全部:

这是生成解决方案并将其转换为适合绘图的表达式的 Maple 代码

lapeq:=diff(v(x,y),x$2)+diff(v(x,y),y$2)=0;
bcs:=v(x,0)=0,v(0,y)=0,v(1,y)=0,v(x,1)=100;
sol1:=pdsolve({lapeq,bcs});
vxy:=eval(v(x,y),sol1);

结果是

到目前为止一切顺利。通过绘制它

plot3d(vxy,x=0..1,y=0..1);

给出的结果对于 x 在整个范围内 (0

我试图评估未知区域中的某个点,但 Maple 无法告诉我那里的数值。有什么方法可以让 Maple “更加努力”地评估这些数字?

【问题讨论】:

    标签: maple


    【解决方案1】:

    您可以尝试设置总和中的项数

    比较

    lapeq:=diff(v(x,y),x$2)+diff(v(x,y),y$2)=0;
    bcs:=v(x,0)=0,v(0,y)=0,v(1,y)=0,v(x,1)=100;
    sol1:=pdsolve({lapeq,bcs});
    vxy:=subs(infinity=100,sol1);
    plot3d(rhs(vxy),x=0..1,y=0..1);
    

    restart;
    lapeq:=diff(v(x,y),x$2)+diff(v(x,y),y$2)=0;
    bcs:=v(x,0)=0,v(0,y)=0,v(1,y)=0,v(x,1)=100;
    sol1:=pdsolve({lapeq,bcs});
    vxy:=eval(v(x,y),sol1);
    plot3d(vxy,x=0..1,y=0..1);
    

    【讨论】:

      【解决方案2】:

      我不喜欢在n 的某个上限值处截断无限和,至少没有从符号或数字上证明这是合理的。即,斩波并没有提供错误的收敛概念。

      所以,您问如何让它“更努力”地工作。我认为这意味着您也可能更愿意让evalf/Sum 自己决定每个无限数字和是否收敛 - 而不是自己手动将其截断为n 范围的上限值的某个有限值。

      为了好玩和谨慎,我还将K 的分子和分母除以可能很大的exp 调用(可能远大于1)。这里可能没有必要。

      restart;
      lapeq:=diff(v(x,y),x$2)+diff(v(x,y),y$2)=0:
      bcs:=v(x,0)=0,v(0,y)=0,v(1,y)=0,v(x,1)=100:
      sol1:=pdsolve({lapeq,bcs}):
      vxy:=eval(v(x,y),sol1):
      
      K:=op(1,vxy):
      J:=simplify(combine(numer(K)/exp(2*Pi*n)))
         /simplify(combine(denom(K)/exp(2*Pi*n))):
      
      F:=subs(__d=J,
          proc(x,y) local k, m, n, r;
            if y<0.8 then
              r:=Sum(__d,n=1..infinity);
            else
              UseHardwareFloats:=false;
              m := ceil(1*abs(y/0.80)^16);
              r:=add(Sum(eval(__d,n=m*n-k),n=1..infinity),
                     k=0..m-1);
            end if;
            evalf(r);
          end proc):
      
      plot3d( F, 0..1, 0..0.99 );
      

      当然,这比仅仅通过切分项来获得有限和要慢。您可能会对确定排除项的总和可以忽略不计的某些技术感到满意。

      【讨论】:

        猜你喜欢
        • 2020-11-29
        • 2011-06-07
        • 1970-01-01
        • 2015-02-27
        • 1970-01-01
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多