0

我正在通过有限差分法在枫树上求解具有纽曼边界条件的一维热方程,但我的代码不起作用,请你们中的任何人建议我为枫树上的这个方程提供一些更好的代码..

重新开始; 与(线性代数);外汇:= 1;金融时报:= 0.5e-1;米:= 5;N := 5; M1 := M-1; H := FX/M; K := FT/N; c := 1; r := c^2*K/H^2;

循环初始条件;

for i to M1 do V[i, 0] := cos(Pi*i*H) end do;

边界条件循环;

对于 j 到 N 做 V[-1, j] := V[1, j] end do; 对于 j 到 N 做 V[M+1, j] := V[M-1, j] end do;

离散方程循环;

对于 j 从 0 到 N-1 对 i 到 M-1 做 V[i, j+1] := (1-2*r)*V[i, j]+r*V[i-1, j ]+r*V[i+1, j] end do end do;

请朋友让我知道为什么我的最后一个循环没有执行。

4

1 回答 1

1

非常微妙的枫树。循环正在执行 - 它只是没有打印结果。语句嵌套的每一级都在语句的“printlevel”中增加一个。输入一个过程将 5 添加到包含过程的打印级别。交互式会话是级别 0。只有当它们的 printlevel 小于或等于默认为 1 的全局变量 printlevel 时,才会打印语句的结果。要查看循环执行,请尝试

printlevel := 4;

最多可打印 4 层嵌套,但不会打印到任何过程调用中。有关完整详细信息,请参阅 ?printlevel。

附带说明一下,您可能需要评估 cos 调用以确保获得浮点值。

于 2013-04-07T18:14:20.070 回答