嵌套循环 Maple 2016

Nested loop Maple 2016

restart;
l:
A:=242.5:
E:=55000:
alpha:=2.3*10^(-5):
G:=6.57:
upsilon[0]:=25:
H[0]:=5000:
upsilon[x]:
equ := H[x]^2*(H[x]-H[0]+E*A*G^2*l^2/(24*H[0]^2)+E*A*alpha*(upsilon[x]-upsilon[0])) = (1/24)*G^2*l^2*E*A;
for l from 20 by 5 to 60 do
  for upsilon[x] from -30 by 10 to 80 do solve(equ)
  end do;
end do;

这是对 20 米到 60 米的 l('m' 中的线跨度)以及所有温度 upsilon[x] 从 -30 的每个跨度必须进行的线张力的简单计算摄氏度到 80 度,递增 10 度。

如果我删除内部循环,一切正常(假设我为 upsilon[x] 设置了一个值)。如果您还可以告诉我如何将结果放入 table(如附件),我将非常高兴。

您可以在 Maple 2016.2 标准 GUI 中以编程方式嵌入这样的 Table,如下所示。

(我指的是图形用户界面,不仅仅是 tty 终端和命令行界面,也不是旧的经典 GUI。)

restart;
l:
A:=242.5:
E:=55000:
alpha:=2.3*10^(-5):
G:=6.57:
upsilon[0]:=25:
H[0]:=5000:
upsilon[x]:

equ := H[x]^2*(H[x]-H[0]+E*A*G^2*l^2/(24*H[0]^2)
       +E*A*alpha*(upsilon[x]-upsilon[0])) = (1/24)*G^2*l^2*E*A:

Mres:=Matrix(12,9):
for l from 20 by 5 to 60 do
  for upsilon[x] from -30 by 10 to 80 do
    Mres[trunc(upsilon[x]/10+4),l/5-3]:=[fsolve(equ,H[x])][1];
  end do;
end do;

Mall:=<Vector[column](13,[`Temp &#176;C\Span m`,
                          seq(-30.0+(i-1)*10,i=1..12)]) |
         <Vector[row](9,[seq(evalf[3](20.0+(j-1)*5),j=1..9)]),
          evalf[5](Mres)>>:

上面创建了一个矩阵,Mall。一种选择是您只需打印该矩阵。

interface(rtablesize=50):
Mall;

另一种选择是以编程方式嵌入 GUI Table,在其单元格中呈现 Mall

oldts:=interface(typesetting):
interface(typesetting=extended):
DocumentTools:-Tabulate(Mall, weights=[20,seq(11,j=1..9)],
                        widthmode=pixels, width=700):
interface(typesetting=oldts):

如果您在文档中,最后一组命令应放在其自己的段落(文档块)中,如果您在工作表中,则应放在其自己的执行组中。

如果您已经在使用 interface(typesetting=extended) 设置,这意味着 "extended" 二维数学排版级别,那么您可以忽略所有这些 interface 调用。它们存在的唯一原因是 "Temp deg C" 中的 "degree" 符号在没有额外引号的情况下呈现。

如果您真的非常希望 table 的第一行是一个水平跨越整个 Table 的单个单元格,那么 Table 将不得不更加手动地制作使用 DocumentTools:-Layout:-Table 命令。让我知道...虽然我会缺席几天。