Многочлен и матрица как аргумент
|
|
|
Развитие счётных машин с древних времён до наших дней • Калькуляторы CASIO
Можно подумать, будто счётная машина — это современное явление. Однако человечество стало изобретать устройства для счёта задолго до того, как появились первые компьютеры.
Самыми первыми человеческими помощниками в счёте были пальцы. С их помощью наши далёкие предки указывали друг другу, сколько охотников нужно, чтобы окружить и загнать зверя. Добыча тоже требовала счёта — нужно было определить, сколько мяса получат члены племени. Так что скоро пяти пальцев стало не хватать. Поэтому древние люди начали считать с помощью камешков и костей, раскладывая их на песке в неверном свете костра.
Однако со временем количество палочек росло, и скоро понадобились обозначения для десятков и сотен. Счёт был нужен, чтобы высчитывать срок появления на свет детей, вести учёт отёла скота и знать, когда взойдут посевы, чтобы предсказывать солнечные и лунные затмения. Также исследователи уверены, что важной вехой в развитии счёта стала торговля. Как объяснить, что пять шкур равны десяти корзинам мяса? Или тридцати мешкам овощей? Появилась необходимость в универсальных обозначениях, а человеческое мышление совершило восхождение к абстракции, обратившись к идее чисел как таковых.
Какие же инструменты помогали человечеству?
Древние люди делали зарубки на костях и камнях и носили эти палочки с собой, либо оставляли чёрточки на стенах жилищ. Одно из самых старинных устройств, которое не так уж далеко ушло от костей на полу пещеры — это, конечно, счёты. По сути они представляют собой те же кости (деревяшки, камушки), только нанизанные на спицы, которые закреплялись в раме.
Их близкий родственник — счётная доска абак, которая появилась в Вавилоне около пяти тысяч лет назад. Очевидно, что её появлению мы обязаны бурной вавилонской торговле. Если классические счёты, какими их знают в России, опираются на позиционную десятичную систему счисления, то вавилонский абак использовал шестидесятеричную. Такой оригинальный способ счёта происходит, как и большинство систем счисления, от пропорций человеческого тела — если говорить точнее, от числа фаланг пальцев на одной руке (не считая большого).
Вариации счётных досок были во всех древних культурах. В Японии они называются соробан, в Китае — суньпань. Римляне делали счёты из металла, передвигая костяшки в пазах металлической доски, а ацтеки — из кукурузных зёрен. Инки использовали для подсчёта зёрен «многоэтажное» устройство под названием юпана.
Самые первые помощники человечества в счете
Кость с зарубками, обнаруженная в Дольни-Вестонице. Её возраст — почти 30 000 лет.
Древнеримский абак. Реконструкция
Японские дети собирают соробаны на заводе. 1949 г.
Однако люди всегда стремились упростить себе жизнь, создавая всё более сложные устройства, которые бы взяли необходимость считать на себя. С ростом городов и развитием промышленности потребность в них только увеличилась. В XVII столетии появились логарифмические таблицы и линейки. Шотландский математик Джон Непер изобрёл счётный прибор, известный как палочки Непера. Снискав на время большую популярность, палочки Непера, однако, вскоре были заброшены. А вот арифмометр оказался перспективнее. Изобретённый ещё в античности, в эпоху Просвещения он был переоткрыт и получил заслуженное признание. Ранее схему похожего на арифмометр механизма изображал Леонардо да Винчи, который, как обычно, опередил своё время: тогда его идея успеха не имела.
Палочки Непера
Как развивались счётные машины?
В общем виде счётная машина представляет собой устройство, работающее на зубчатых колёсах и цилиндрах, которое производит четыре основных математических действия. Записывающие счётные машины также могут автоматически фиксировать результаты на ленте. Принцип счёта основан на поразрядном сложении и сдвиге суммы частных произведений. Свои версии арифмометра создали Блез Паскаль, спроектировавший в 1646 году суммирующую машину «паскалина», и Готфрид Вильгельм Лейбниц: в его арифмометре была ручка, вращение которой ускоряло повторяющиеся операции.
Также следует упомянуть вычислительную машину, разработанную Чарльзом Бэббиджем в XIX столетии. Она могла производить вычисления с точностью до двадцатого знака, подходила для операций с логарифмами и тригонометрическими функциями. Программа для неё была составлена Адой Лавлейс, первой женщиной-программистом, да и вообще первым программистом в мире. Именно ей принадлежат термины «цикл» и «рабочая ячейка».
Арифмометр Блеза Паскаля. 1642 г.
Арифмометр Лейбница. 1673 г.
Элемент аналитической машины Чарльза Бэббиджа. 1910 г.
Существовало множество моделей счётных машин. Например, карманный арифмометр Curta, выпущенный в 1948 году, был размером с человеческий кулак.
В конце XIX века изобретатель Уильям Берроуз запатентовал свой арифмометр и основал компанию по производству компьютерной техники Burroughs Corporation. Его сын продолжил дело, а вот внук, тоже Уильям Берроуз, интересовался литературой куда больше, чем вычислительными машинами, и стал одной из значимых фигур поколения битников.
Арифмометры выпускали марки Facit и Mercedes (не тот, что выпускает автомобили: производитель офисной техники судился с автоконцерном за название, договорившись в результате о том, что у каждой компании своя сфера деятельности). А в СССР самым популярным арифмометром был названный в честь Дзержинского «Феликс», который выпускался заводом «Счётмаш» до 1978 года.
Обладая характерной для механических устройств красотой, арифмометры всё-таки имели существенные недостатки. Порядок действий всегда задавался вручную, поэтому результат счёта сильно зависел от внимательности оператора, которому требовалось нажимать на клавишу для выполнения каждого действия. Арифмометры имели хождение вплоть до второй половины ХХ века, когда их окончательно вытеснили электронные счётные устройства.
Лихтенштейнский карманный арифмометр Curta. 1948 г.
Советский арифмометр «Феликс»
Уильям Берроуз, который любил печатные машинки гораздо больше, чем счётные.
1959 г., Париж. Loomis Dean—Time & Life Pictures/Getty Images
Электронный прорыв
Настоящий прорыв в развитии вычислительной техники случился в 60-х годах ХХ века.
В 1957 году японская компания Casio выпустила первый полностью электронный калькулятор 14-А. Событие было эпохальным, потому что открыло новую эру в мире счёта, но жизнь офисных работников и инженеров эта модель не изменила, ведь весил калькулятор целых 140 кг.
Первым компактным, а значит, массовым, калькулятором стал Anita, выпущенный английской компанией Bell в 1961 году. Он работал на газоразрядных лампах и был оснащён клавишами ввода числа и множителя. С тех пор функции калькуляторов становились всё более серьёзными, а сами калькуляторы — всё более лёгкими и умными.
Например, в 1965 году появился первый настольный электронный калькулятор со встроенной памятью Casio 001. Весил он всего 17 килограмм, что по тем временам для машины, способной запоминать операции, было вовсе не много, а два года спустя появился первый настольный программируемый калькулятор Casio AL-1000.
Однако пользователям калькуляторов было и этого мало, ведь счётное устройство куда удобнее держать в руке и носить с собой. Так появились калькуляторы Sharp и Canon, которые весили менее килограмма.
Вот ещё несколько эпохальных инноваций от японской марки Casio, которые существенно изменили представления о том, на что способны калькуляторы.
- Connector.
1972
Появился карманный калькулятор Casio Mini, продажи которого побили все рекорды. А через некоторое время компания выпустила миниатюрную версию, Casio Mini Card, размером с кредитную карту.
- Connector.
1985
Компания выпустила калькулятор FX-7000G — первый в мире программируемый графический калькулятор, доступный широкой публике, с матричным дисплеем, имеющем разрешение 96×64 пикселя. Эта модель может отображать как встроенные графики, так и построенные пользователем. В дополнение к режиму графического отображения калькулятор имеет функцию программирования на языке Бейсик.
- Connector.
1990
Пять лет спустя на прилавках появился калькулятор Casio CFX-9800G, в котором впервые появилась возможность делать графики в разных цветах. По сути, был добавлен цветной дисплей. В отличие от современных экранов, он был трёхцветным и работал на отражённом свете. Это дало возможность рисовать каждый график своим цветом, что делало графические отображения функций куда более наглядными.
- Connector.
2003
Casio выпускает устройство CASIO ClassPad 300 — первый калькулятор с большим сенсорным экраном. Модель имела систему компьютерной алгебры (CAS), которая позволяет производить преобразования выражений в аналитической (символьной) форме.
- Connector.
2004
появился калькулятор Casio FX-82ES с технологией Natural Display, позволяющий вводить выражения в естественном виде так, как они выглядят на бумаге. Например, вводить обыкновенные дроби, квадратные корни, экспоненты и логарифмы в виде, принятом в учебниках. В результате сокращается количество ошибок в вычислениях, время вычислений и повышается заинтересованность учеников.
- Connector.
2010
Модель калькулятора Casio fx-CG20 PRIZM явилась развитием первой модели, выпущенной в 2010 году. В отличие от предшественников она имела полноцветный экран высокого разрешения. Модель, несмотря на экран с подсветкой, не потеряла в энергоэффективности и способна месяцами работать на одном комплекте батарей.
Сейчас калькуляторы не только стали компактными и лёгкими, но и освоили массу функций, которые могут быть полезны всем, кому требуются точные и сложные расчёты. Сейчас существуют научные калькуляторы, которым под силу производить вычисления с дробями, считать векторы и матрицы, совершать метрические преобразования и решать уравнения, графические калькуляторы, позволяющие создавать таблицы и строить графики по картинке, а также финансовые калькуляторы, которые справляются с расчётом облигаций и другими нуждами финансиста.
На сегодняшний день флагманская графическая модель — калькулятор Casio FX-CG50 с цветным экраном высокого разрешения, возможностью строить 3D графики, режимом программирования, а также поддержкой векторных и матричных вычислений.
Так счётное устройство прошло эволюцию от доски с костяшками до маленького мощного компьютера, сохранив, тем не менее, главное свойство — способность облегчать жизнь человеку, освобождая его разум для стратегических решений.
Преобразование матрицы Калькулятор
Вычисляет преобразование матрицы, такое как вращение, отражение, проекция, сдвиг (трансвекция) или растяжение.
Вы можете выбрать точное или численное решение.
Трансформация
— План 2D -Вращение вокруг точки (xc,yc) (2D)Отражение поперек линии y=m*x+p (2D)Ортогональная проекция на линию (y=n*x+q) (2D)Масштабирование по коэффициенту k (2D)Горизонтальный сдвиг по коэффициенту k (2D)Вертикальный сдвиг по коэффициенту k (2D)Горизонтальное растяжение по коэффициенту k (2D)Вертикальное растяжение по коэффициенту k (2D)
Угловое вращение (> 0)
RAD ° (степень)
направление вращения
Counterclockwiseclock Swie разделитель: пробел
Строка (y=mx+p) : m p
напр. ввод: 2 3 (для строки y = 2x+3)
Вектор оси: u v w
Линия (y=nx+q) : n q
напр. ввод: 2 3 (для строки y = 2x+3)
(необязательно) Рассчитайте преобразование точки: x 0 y 0
(необязательно) Рассчитайте преобразование точки: x y z
Решение
Точное выступ калькулятор?
Этот инструмент вычисляет,
— матрицу геометрического преобразования, такого как вращение, ортогональная проекция или отражение.
— Уравнения преобразования
— Преобразование заданной точки
Допустимые входные данные
— числа и дроби
— обычные операторы: + — / *
— обычные функции: cos, sin и т.д. кв (3).
Общие поля для всех преобразований
— Поле преобразования: выберите геометрическое преобразование, которое вы хотите проанализировать.
— Вычислить преобразование точки (x 0 ,y 0 ): это поле не является обязательным. При вводе инструмент вычисляет преобразование точки M (x 0 , у 0 ).
— Поле решения: выберите для вывода точное решение или решение с числовыми значениями (пример: пи против 3,14159265 или 3/4 против 0,75)
Вращение вокруг точки на плоскости (2D)
— Поле угла: введите угол поворота и выберите единицу измерения (радиан или градус) в поле выбора.
Введите положительное значение. Направление вращения определяется полем «направление», а не знаком значения угла.
— Поле направления: выберите направление вращения (по часовой стрелке или против часовой стрелки).
— Центр: введите координаты центра вращения через пробел. Если центр вращения является исходной точкой, введите: 0 0
Отражение поперек линии в плоскости (2D)
— Линия: m p : если уравнение линии y = mx+p, введите m (наклон) и p (отрезок), разделенные пробелом. Пример: для строки ‘y = 2x-4’ введите: 2 -4
Ортогональная проекция на линию плоскости (2D)
— Линия : поле n q : если уравнение линии y = nx+q, введите n (наклон) и q (отрезок), разделенные пробелом. Пример: для строки ‘y = -2x-7’ введите: -2 -7
Масштабирование (2D)
— factor k : введите коэффициент масштабирования.
Это преобразование также называется расширением, если k > 1, и сужением, если k
Сдвиг или растяжение (2D)
— фактор k : введите коэффициент преобразования. Для направления горизонтальный сдвиг (или трансвекция) — это сдвиг, параллельный оси x.
См. также
Калькуляторы линейной алгебры
Калькуляторы координатной геометрии
Калькуляторы математики 9(1) {\partial t}\Psi = \hat H \Psi,\]
, где \(\Psi\) — волновая функция, \(\hat H\) — гамильтониан, а \(\hbar\) — постоянная Планка . В общем случае уравнение Шредингера представляет собой дифференциальное уравнение в частных производных (УЧП), где \(\Psi\) и \(\hat H\) являются функциями пространства и времени. Для вычислительных целей полезно разложить УЧП на набор базисных функций, охватывающих гильбертово пространство гамильтониана, и записать уравнение в матрично-векторной форме
\[i\hbar\frac{d}{dt}\left|\psi\right> = H \left|\psi\right>\]
где \(\left|\psi\right>\) — вектор состояния, а \(H\) — матричное представление гамильтониана. Это матричное уравнение в принципе может быть решено путем диагонализации матрицы Гамильтона \(Н\). На практике, однако, эту диагонализацию трудно осуществить, если только размер гильбертова пространства (размерность матрицы \(Н\)) не мал. С аналитической точки зрения расчет динамики для систем с более чем двумя состояниями представляет собой сложную задачу. Если дополнительно учесть диссипацию из-за неизбежного взаимодействия с окружающей средой, то вычислительная сложность возрастает еще больше, и во всех реальных ситуациях приходится прибегать к численным расчетам. Это иллюстрирует важность численных расчетов для описания динамики открытых квантовых систем и необходимость эффективных и доступных инструментов для решения этой задачи.
Уравнение Шредингера, определяющее эволюцию во времени замкнутых квантовых систем, определяется своим гамильтонианом и вектором состояния. В предыдущем разделе «Использование тензорных произведений и частичных трасс» мы показали, как в QuTiP строятся гамильтонианы и векторы состояния. Учитывая гамильтониан, мы можем вычислить унитарную (недиссипативную) временную эволюцию произвольного вектора состояния \(\left|\psi_0\right>\) ( psi0
), используя функцию QuTiP qutip. sesolve
. Он развивает вектор состояния и оценивает ожидаемые значения для набора операторов expt_ops
в моменты времени в списке раз
, используя решатель обыкновенных дифференциальных уравнений.
Например, вычисляется временная эволюция квантовой системы со спином 1/2 со скоростью туннелирования 0,1, которая изначально находится в активном состоянии, и вычисляются математические ожидания оператора \(\sigma_z\) с помощью следующего кода
>>> H = 2*np.pi * 0,1 * sigmax() >>> psi0 = базис (2, 0) >>> раз = np.linspace(0.0, 10.0, 20) >>> результат = sesolve(H, psi0, times, [sigmaz()])
См. следующий раздел, где приведены примеры включения рассеяния путем определения списка операторов коллапса и использования вместо этого qutip.mesolve
.
Функция qutip.sesolve
возвращает экземпляр qutip.solver.Result
, как описано в предыдущем разделе Результаты динамического моделирования. Атрибут ожидаемое
в результат
представляет собой список ожидаемых значений для операторов, включенных в список в четвертом аргументе. Добавление операторов к этому списку приводит к увеличению выходного списка, возвращаемого функцией (один массив чисел, соответствующий временам в временах, для каждого оператора).
>>> результат = sesolve(H, psi0, раз, [sigmaz(), sigmay()]) >>> результат.ожидать [массив([ 1. , 0,78914057, 0,24548559, -0,40169513, -0,8794735, -0,98636142, -0,67728219, -0,08258023, 0,54694721, 0,94581685, 0,94581769, 0,54694945, -0,08257765, -0,67728015, -0,98636097, -0,87947476, -0,40169736, 0,24548326, 0,78913896, 1. ]), массив([ 0.00000000e+00, -6.14212640e-01, -9.69400240e-01, -9.15773457e-01, -4.75947849э-01, 1.64593874э-01, 7.35723339э-01, 9.96584419э-01, 8.37167094э-01, 3.24700624э-01, -3.24698160э-01, -8.37165632э-01, -9.96584633э-01, -7.35725221э-01, -1.64596567э-01, 4.75945525э-01, 9.15772479э-01, 9.69400830э-01, 6.14214701э-01, 2.77159958э-06])]
Результирующий список ожидаемых значений можно легко визуализировать с помощью графических функций matplotlib:
>>> H = 2*np. pi * 0,1 * sigmax() >>> psi0 = базис (2, 0) >>> раз = np.linspace(0.0, 10.0, 100) >>> результат = sesolve(H, psi0, times, [sigmaz(), sigmay()]) >>> рис, топор = plt.subplots() >>> ax.plot(result.times, result.expect[0]) >>> ax.plot(result.times, result.expect[1]) >>> ax.set_xlabel('Время') >>> ax.set_ylabel('Ожидаемые значения') >>> ax.legend(("Сигма-Z", "Сигма-Y")) >>> plt.show()
Если в качестве четвертого параметра передается пустой список операторов, функция qutip.sesolve
возвращает экземпляр qutip.solver.Result
, который содержит список векторов состояния для времени, указанного в раз
>> > раз = [0,0, 1,0] >>> результат = sesolve(H, psi0, раз, []) >>> результат.состояния [Квантовый объект: dims = [[2], [1]], shape = (2, 1), type = ket Данные Qobj = [[1.] [0.]], квантовый объект: dims = [[2], [1]], shape = (2, 1), type = ket Данные Qobj = [[0,809+0.j ] [0. -0,58778526j]]]Неунитарная эволюция
В то время как эволюция вектора состояния в закрытой квантовой системе является детерминированной, открытые квантовые системы имеют стохастическую природу. Влияние окружающей среды на интересующую систему состоит в том, чтобы вызвать стохастические переходы между уровнями энергии и внести неопределенность в разность фаз между состояниями системы. Таким образом, состояние открытой квантовой системы описывается в терминах усредненных по ансамблю состояний с использованием формализма матрицы плотности. Матрица плотности \(\rho\) описывает вероятностное распределение квантовых состояний \(\left|\psi_n\right>\) в матричном представлении \(\rho = \sum_n p_n \left|\psi_n\right>\ left<\psi_n\right|\), где \(p_n\) — классическая вероятность того, что система находится в квантовом состоянии \(\left|\psi_n\right>\). Эволюция во времени матрицы плотности \(\rho\) является темой оставшихся частей этого раздела.
Мастер-уравнение Линдблада
Стандартный подход к выводу уравнений движения для системы, взаимодействующей с окружающей средой, состоит в том, чтобы расширить область системы, включив в нее окружающую среду. Затем комбинированная квантовая система замыкается, и ее эволюция определяется уравнением фон Неймана
(2)\[\dot \rho_{\rm tot}(t) = -\frac{i}{\hbar}[H_ {\rm tot}, \rho_{\rm tot}(t)],\]
эквивалент уравнения Шрёдингера (1) в формализме матрицы плотности. Здесь полный гамильтониан
\[H_{\rm tot} = H_{\rm sys} + H_{\rm env} + H_{\rm int},\]
включает гамильтониан исходной системы \(H_{\rm sys}\ ), гамильтониан для среды \(H_{\rm env}\) и член, представляющий взаимодействие между системой и ее средой \(H_{\rm int}\). Поскольку нас интересует только динамика системы, мы можем в этот момент выполнить частичную трассировку степеней свободы окружающей среды в уравнении. (2) и тем самым получить основное уравнение движения матрицы плотности исходной системы. Наиболее общей сохраняющей след и полностью положительной формой этой эволюции является основное уравнение Линдблада для приведенной матрицы плотности \(\rho = {\rm Tr} _{\rm env}[\rho _{\rm tot}]\) 9\dagger C_n \rho(t)\right]\]
где \(C_n = \sqrt{\gamma_n} A_n\) - операторы коллапса, а \(A_n\) - операторы, через которые среда соединяется с система в \(H_{\rm int}\), а \(\gamma_n\) - соответствующие ставки. Вывод уравнения (3) можно найти в нескольких источниках и здесь воспроизводиться не будет. Вместо этого мы подчеркиваем приближения, которые необходимы, чтобы прийти к основному уравнению в форме уравнения. (3) из физических аргументов и, следовательно, выполнить расчет в QuTiP: 9I _ {\ rm env} (0) \).
Приближение Борна: Требует: (1) чтобы состояние окружающей среды существенно не менялось в результате взаимодействия с системой; (2) Система и среда остаются разделимыми на протяжении всей эволюции. Эти допущения оправданы, если взаимодействие слабое, а среда намного больше системы. Таким образом, \(\ rho _ {\ rm tot} (t) \ приблизительно \ rho (t) \ otimes \ rho _ {\ rm env} \).
Марковское приближение Временная шкала затухания для окружающей среды \(\tau_{\rm env}\) намного короче наименьшей временной шкалы динамики системы \(\tau_{\rm sys} \gg \tau_ {\гм окр}\). Это приближение часто называют «средой с короткой памятью», поскольку оно требует, чтобы корреляционные функции среды быстро затухали во времени по сравнению с функциями системы.
Секулярная аппроксимация Предусматривает, что элементы основного уравнения, соответствующие частотам переходов, удовлетворяют \(|\omega_{ab}-\omega_{cd}| \ll 1/\tau_{\rm sys}\), т. е. все быстровращающимися членами в картине взаимодействия можно пренебречь. Он также игнорирует члены, которые приводят к небольшой перенормировке энергетических уровней системы. Это приближение не является строго необходимым для всех формализмов основного уравнения (например, основного уравнения Блока-Редфилда), но оно необходимо для получения формы Линдблада (3), которая используется в 9.0138 qutip.mesolve .
Для систем с окружающей средой, удовлетворяющей описанным выше условиям, основное уравнение Линдблада (3) управляет изменением во времени матрицы плотности системы, давая среднее значение динамики системы по ансамблю. Чтобы гарантировать, что эти приближения не нарушаются, важно, чтобы скорости распада \(\gamma_n\) были меньше минимального энергетического расщепления в гамильтониане системы. Таким образом, ситуации, требующие особого внимания, включают, например, системы, сильно связанные с окружающей средой, и системы с вырожденными или почти вырожденными уровнями энергии.
Для неунитарной эволюции квантовых систем, т.е. эволюции, включающей
некогерентные процессы, такие как релаксация и дефазировка, обычно используют
основные уравнения. В QuTiP функция qutip.mesolve
используется как для:
эволюция согласно уравнению Шредингера и основному уравнению,
хотя эти два уравнения движения очень разные. qutip.mesolve
функция автоматически определяет, достаточно ли использовать метод Шрёдингера
уравнение (если операторы коллапса не были заданы) или если оно должно использовать
основное уравнение (если заданы операторы коллапса). Обратите внимание, что для расчета
эволюция во времени по уравнению Шрёдингера проще и намного
быстрее (для больших систем), чем при использовании основного уравнения, поэтому, если возможно,
решатель вернется к использованию уравнения Шредингера.
Новое в основном уравнении по сравнению с уравнением Шредингера: процессы, описывающие диссипацию в квантовой системе за счет ее взаимодействия с окружающей средой. Эти взаимодействия с окружающей средой определяются операторы, через которые система соединяется с окружающей средой, и оценивает, что описать силу процессов.
В QuTiP - произведение квадратного корня из скорости и оператора, который
описывающий процесс диссипации, называется оператором коллапса. Список
операторы коллапса ( c_ops
) передается в качестве четвертого аргумента в Функция qutip.mesolve
для определения процессов рассеяния в мастере
уравнение. Когда c_ops
не пусто, функция qutip.mesolve
будет использовать
основное уравнение вместо унитарного уравнения Шрёдингера.
Используя пример с динамикой вращения из предыдущего раздела, мы можем
легко добавить релаксационный процесс (описывающий диссипацию энергии от
вращаться в свою среду), добавив np. sqrt(0.05) * sigmax()
в четвертом
параметр функции qutip.mesolve
и перемещение ожидания
операторы [sigmaz(), sigmay()]
к пятому аргументу.
>>> раз = np.linspace(0.0, 10.0, 100) >>> результат = mesolve(H, psi0, times, [np.sqrt(0.05) * sigmax()], [sigmaz(), sigmay()]) >>> рис, топор = plt.subplots() >>> ax.plot(times, result.expect[0]) >>> ax.plot(times, result.expect[1]) >>> ax.set_xlabel('Время') >>> ax.set_ylabel('Ожидаемые значения') >>> ax.legend(("Сигма-Z", "Сигма-Y")) >>> plt.show()
Здесь 0,05 — скорость, а оператор \(\sigma_x\) ( qutip.operators.sigmax
) описывает диссипацию
процесс.
Теперь немного более сложный пример: рассмотрим двухуровневый атом, связанный с негерметичным одномодовым резонатором через взаимодействие дипольного типа, которое поддерживает когерентный обмен квантами между двумя системами. Если атом изначально находится в основном состоянии, а резонатор находится в 5-фотонном фоковском состоянии, динамика рассчитывается строками, следующими за кодом 9.