mathematica中,如何用循环语句生成数组循环语句是解方程,接n个方程,得n个解,r如何把解放到一个数组

mathematica中,如何用循环语句生成数组循环语句是解方程,接n个方程,得n个解,r如何把解放到一个数组,第1张

用table,不要用for,举个例子,我想解 x^2 + kx + 1 == 0, k=1,2,3,,10这10个方程的解,那么就这么写

Table[x / Solve[x^2 + kx + 1 == 0, x], {k, 1, 10}]

首先,不建议在 mathematica 中使用循环,这是一种函数式编程语言,可以直接进行向量、矩阵的计算,你的这个计算应该是可以转化为矩阵计算的。

其次,FOR 循环的格式是,

可你的这个使用中的 test 项是 N1,应该是 i<=N1

很遗憾,Manipulate函数的结果是mathematica中的动态对象,这些动态对象是实时变化的,所以不能让他停住。

Animate 生成的内容是一系列的,然后合成在一起的,并不是实时计算的。

如果你觉得Manipulate函数太耗费资源,那么你可以升级你的电脑,另外一个办法是优化你的算法。

构造列表用什么Do啊,用Table啊,Table:

Flatten@Table[5ij + 1, {i, 2}, {j, 3}]

非要用Do就这样:

Last@Last@Reap@Do[Sow[5ij + 1], {i, 2}, {j, 3}]

还可以这样:

c = {};

Do[b = 5ij + 1; c = Append[c, b], {i, 2}, {j, 3}]

看起来差不多但其实大不相同并且更慢的,就这样:

a = {};

Do[b = 5ij + 1; AppendTo[a, b], {i, 2}, {j, 3}]

可以的,比如定义一个函数(欧几里德Euclid算法):

gcd[m0_, n0_] :=

 Module[{m = m0, n = n0},

  While[n != 0, {m, n} = {n, Mod[m, n]}];

  m

  ]

以上就是关于mathematica中,如何用循环语句生成数组循环语句是解方程,接n个方程,得n个解,r如何把解放到一个数组全部的内容,包括:mathematica中,如何用循环语句生成数组循环语句是解方程,接n个方程,得n个解,r如何把解放到一个数组、mathematica里for语句不循环跪求大神、Mathematica中Manipulate 函数与循环的问题.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10091984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存