如何生成方程组

int cmp

来自: int cmp(const void*, const void*)
2014-03-22 11:24:32

×
加入小组后即可参加投票
  • Everett

    Everett (╮(╯▽╰)╭~(= ̄ U  ̄=)~) Kernel 2014-03-22 13:40:51

    线性方程的话直接构造矩阵求解就可以了。矩阵的构造方法是 SparseArray

  • int cmp

    int cmp (const void*, const void*) 楼主 2014-03-22 14:03:37

    线性方程的话直接构造矩阵求解就可以了。矩阵的构造方法是 SparseArray 线性方程的话直接构造矩阵求解就可以了。矩阵的构造方法是 SparseArray Everett

    嗯不是线性的… 是 J sum{ -cos θ_i sin θ_j - Δ sin θ_i cos θ_j} - h sin θ_i == 0 这样的。

    我想了想用了 Table + 用于处理下标的自定义的函数,貌似可行。然后用 NSolve 一下。

    还剩几个问题。像这样一大群待求变量,用 Mathematica 怎么处理比较好呢?用下标,List 还是什么?

    另外,像这种自定义函数,如何封装比较好? Module 么?

  • Everett

    Everett (╮(╯▽╰)╭~(= ̄ U  ̄=)~) Kernel 2014-03-22 14:37:23

    变量本身是下标的函数,比如θ[i]

  • Everett

    Everett (╮(╯▽╰)╭~(= ̄ U  ̄=)~) Kernel 2014-03-22 14:38:29

    嗯不是线性的… 是 J sum{ -cos θ_i sin θ_j - Δ sin θ_i cos θ_j} - h sin θ_i == 0 这样 嗯不是线性的… 是 J sum{ -cos θ_i sin θ_j - Δ sin θ_i cos θ_j} - h sin θ_i == 0 这样的。 我想了想用了 Table + 用于处理下标的自定义的函数,貌似可行。然后用 NSolve 一下。 还剩几个问题。像这样一大群待求变量,用 Mathematica 怎么处理比较好呢?用下标,List 还是什么? 另外,像这种自定义函数,如何封装比较好? Module 么? ... int cmp

    未必需要定义处理下标的函数,一般是用模式匹配 {i_,j_}/;Mod[j-i,L]==1

  • int cmp

    int cmp (const void*, const void*) 楼主 2014-03-28 12:53:50

    未必需要定义处理下标的函数,一般是用模式匹配 {i_,j_}/;Mod[j-i,L]==1 未必需要定义处理下标的函数,一般是用模式匹配 {i_,j_}/;Mod[j-i,L]==1 Everett

    我终于解决了这些问题!

    我最早想要的是最小化一个 hamiltonian. 后来发现还是用 NMinimize 比较好, 用 NSolve 经常跑不出来.

    然后格点不要太大, 老板说 20~30个变量就好了. 太大了最优化算法不收敛.

你的回复

回复请先 , 或 注册

4409 人聚集在这个小组
↑回顶部