Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Простейший способ вычисления петли гистерезиса

04.10.17 16:33
Re: Простейший способ вычисления петли гистерезиса
 
Bigfoot коренной житель
Bigfoot
в ответ AlexNek 30.09.17 23:07

За что я люблю R:

Пример UI в графике R


И все умещается в 11 строк кода (сократил, правда, пару строк, незначительно ухудшив читабельность - оставлять одну скобку на строке зажирно):

library(ggplot2)
library(manipulate)
hyst.loop <- function(nPts, nCos, H_c, H_s, M_s) {
  t <- (0:(nPts-1))/(nPts-1)*2*pi
  return(data.frame(H=H_s*cos(t)^nCos + H_c*sin(t), M=M_s*cos(t)))}
manipulate({ggplot(hyst.loop(200,n.cos,H.c,H.s,M.s),aes(x=H,y=M))+  
      geom_path()},
  H.c=slider(1e-3,20, label="H_c", initial = 1),
  H.s=slider(1e-3,20, label="H_s", initial = 3),
  M.s=slider(1e-3,20, label="M_s", initial = 5),
  n.cos=slider(1,11,step=2, initial = 1, label="Cos Exponent"))

Могу добавить графики для H и M по отдельности, не вопрос. Еще добавит строк 10-12. По времени сие занимает несколько минут. Но, ессесна, при знании возможностей R-пакетов "ggplot2" и "manipulate". улыб

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
 

Перейти на