找回密码
 注册
Simdroid-非首页
查看: 213|回复: 0

[数值计算] 为何mathematica的FindRoot计算出现一些坏点但mathcad却没有问题

[复制链接]
发表于 2016-6-13 21:07:54 | 显示全部楼层 |阅读模式 来自 安徽芜湖
  1. f1[\[Theta]H_, \[Theta]Mi_, Hei_] :=
  2.   Module[{Ms = 1707, \[Omega] = 9454.5, \[Gamma] = 2.8, Nx = 0,
  3.     Ny = 0, Nz = 1},
  4.    FindRoot[{He Sin[\[Theta]H - \[Theta]M] ==
  5.       2 \[Pi] Ms Sin[
  6.         2 \[Theta]M] (Ny -
  7.          Nz), (\[Omega]/\[Gamma])^2 == (He Cos[\[Theta]H - \[Theta]M] \
  8. + 4 \[Pi]  Ms Cos[
  9.            2 \[Theta]M] (Ny - Nz)) (He Cos[\[Theta]H - \[Theta]M] +
  10.          4 \[Pi] Ms (Sin[\[Theta]M]^2 (Nz - Ny) + Nx -
  11.             Nz))}, {{\[Theta]M, \[Theta]Mi}, {He, Hei}}]];
  12. angle = Range[0/180*\[Pi], 180/180*\[Pi],
  13.   0.5/180*\[Pi]];(*start, stop, step*)
  14. imax = Dimensions[angle];
  15. d = {{\[Theta]M, He}} /. f1[0.001/180*\[Pi], 0.001/180*\[Pi], 25000]
  16. For[i = 1, i < imax[[1]],
  17. i++; {root = {\[Theta]M, He} /.
  18.     f1[angle[[i]], d[[i - 1]][[1]], d[[i - 1]][[2]]],
  19.   d = Append[d, root]}]

  20. Hres = d[[All, 2]];
  21. ListPlot[Transpose[{angle, Hres}], PlotRange -> All]
复制代码

同样的公式用MathCAD计算却没有这样的问题。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 10:19 , Processed in 0.026114 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表