terminat0r

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Уважаемые знатоки Mathematica. Есть у меня функция нескольких переменных, возвращает фазу в границах +-Pi /2 Нашел вот такую функцию, которая исправляет фазу, т.е. делает гладкую кривую без границ +-Pi /2 Код: UnwrapPhase1[data_?VectorQ, tol_: Pi, inc_: 2 Pi] := FixedPoint[# + inc*FoldList[Plus, 0., Sign[Chop[ListCorrelate[{1, -1}, #], tol] (*close Chop*)] (*close Sign*)] &,(*close FoldList*) data] (*close FixedPoint and overall function*) | Следующие действия используются чтобы сконструировать функцию которая дает исправленую фазу. 1. Генерирую таблицу значений фазы с пом. функции delta[l_, kf_, V0_, L_] от 0.01 до 1 Код: table1 = Table[delta[1, kf, 0.16, 16.2], {kf, 0.01, 1, 0.001}]; | 2. Значения X Код: tablex = Table[kf, {kf, 0.01, 1, 0.001}]; | 3. Новая таблица (X,Y) Код: table3 = Partition[ Riffle[tablex, UnwrapPhase1[table1]], 2]; | 4. Интерполяция Код: deltasp = Interpolation[table3] | Теперь deltasp[kf] дает мне фазу в любой точке на отрезке от 0.01 до 1. Вопрос такой, можно ли это все организовать в Mathematica в одну функцию/процедуру, что-то типа deltasp[l_, kf_, V0_, L_, kfmin_, kfmax_, deltakf_]:= где задаются просто дополнительные параметры kfmin=0.01, kfmax=1, и deltakf=0.001. Функция нужна дальше для следующих преобразований и интегрирования. | Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 20:30 04-06-2010 | Исправлено: terminat0r, 20:35 04-06-2010 |
|