Вход на сайт
Простейший способ вычисления петли гистерезиса
472 просмотров
Перейти к просмотру всей ветки
Bigfoot коренной житель
в ответ AlexNek 30.09.17 23:07
За что я люблю 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