level 2
芝麻儿开了花🌺
楼主
Mathematica中如何加速这个常规的三维For Loop语句?
For[i = 1, i <= 1000, i++,
For[j = 1, j <= 1000, j++,
For[k = 1, k <= 1000, k++,
If[x[[i]]^2 + y[[j]]^2 + z[[k]]^2 >= R^2,
FunVal[[i, j, k]]=
G[x[[i]], y[[j]], z[[k]]], FunVal[[i, j, k]]= 0.0]]];
我的目标是将有一个在三维空间内(在球体外部,x[[i]]^2 + y[[j]]^2 + z[[k]]^2 >= R^2)构造Table (名为FunVal)存储G函数的离散值。因为G函数比较复杂,所以导致计算速度很慢。
尝试过Outer[G, x[[i]], y[[j]], z[[k]]],效果不好,而且好像不能加入“位于球外”这个条件。
请问有加速的方法吗?谢谢大家。
2022年09月09日 11点09分
1
For[i = 1, i <= 1000, i++,
For[j = 1, j <= 1000, j++,
For[k = 1, k <= 1000, k++,
If[x[[i]]^2 + y[[j]]^2 + z[[k]]^2 >= R^2,
FunVal[[i, j, k]]=
G[x[[i]], y[[j]], z[[k]]], FunVal[[i, j, k]]= 0.0]]];
我的目标是将有一个在三维空间内(在球体外部,x[[i]]^2 + y[[j]]^2 + z[[k]]^2 >= R^2)构造Table (名为FunVal)存储G函数的离散值。因为G函数比较复杂,所以导致计算速度很慢。
尝试过Outer[G, x[[i]], y[[j]], z[[k]]],效果不好,而且好像不能加入“位于球外”这个条件。
请问有加速的方法吗?谢谢大家。
