Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.geol.msu.ru/deps/geochems/soft/ru/OptimS.doc
Дата изменения: Mon Dec 28 17:51:58 2015
Дата индексирования: Sun Apr 10 01:18:15 2016
Кодировка: koi8-r

OptimS: программа оптимизации свободных энергий Гиббса частиц водного
раствора по ультрафиолетовым спектрам поглощения


Руководство пользователя




Назначение программы

Интерпретация ультрафиолетовых спектров поглощения водными растворами
основана на законе Бугера-Ламберта-Бера (Bouguer-Lambert-Beer),
утверждающего, что величина поглощения (молекулами вещества) света,
проходящего через раствор, прямо пропорциональна концентрации поглощающих
молекул и длине пути света:

[pic], (1)

где A - величина поглощения ([pic] - логарифм отношения интенсивностей
входящего и выходящего пучка света), l - длина оптического пути (толщина
раствора), С - концентрация данного вида молекул в растворе, ? - константа
(коэффициент экстинкции), зависящая от длины волны света, но не зависящая
от концентрации поглощающего вещества.

Водный раствор содержит много частиц разного сорта, каждая из которых
имеет свои коэффициенты экстинкции (часто неизвестные). Поэтому, чтобы
получить возможность разделения влияния разных частиц, спектры поглощения
снимаются для нескольких растворов разного состава. Так как величины
поглощения, обусловленные разными частицами, складываются, то поглощение
света растворами может быть записано в следующей компактной форме:

[pic], (2)

где Aij - поглощение j-м раствором на i-й длине волны, ?ik - коэффициент
экстинкции k-й частицы на i-й длине волны, Ckj - концентрация k-й частицы в
j-м растворе. В этом выражении параметр l (длина оптического пути) опущен,
так как он обычно является величиной постоянной для всей серии измерений и,
таким образом, может быть включен в величину коэффициента экстинкции (таким
образом, коэффициенты экстинкции получаются масштабированными; если
требуется получить их абсолютные значения, это всегда можно сделать путем
их деления на l).

Спектрометры позволяют измерить величины поглощения света растворами
Aij. При известных концентрациях всех частиц Ckj из (2) методом наименьших
квадратов можно определить коэффициенты экстинкции ?ik. Однако концентрации
частиц, как правило, неизвестны, и их нужно рассчитывать. Если же
термодинамические свойства частиц тоже неизвестны, то задача интерпретации
спектров поглощения становится неопределенной. Таким образом, возникает
обратная термодинамическая задача: найти такие термодинамические свойства
частиц (свободные энергии или константы устойчивости комплексов), чтобы
рассчитанные по ним составы растворов и определенные по этим составам
коэффициенты экстинкции удовлетворяли соотношению (2) наилучшим образом (в
смысле наименьших квадратов).

Программа OptimS предназначена для решения описанной выше обратной
термодинамической задачи, то есть для уточнения (и оценки точности)
свободных энергий Гиббса небольшого числа частиц водного раствора по
ультрафиолетовым спектрам поглощения. Решение прямой термодинамической
задачи расчета химических равновесий в водных растворах выполняется с
помощью пакета HCh для Windows (версия 4.2 и выше).

Программа обрабатывает спектры поглощения, снятые для нескольких
растворов одной и той же химической системы (но с различными содержаниями
компонентов) при одних и тех же условиях (температуре, давлении и других
параметрах измерения). В программе предполагается, что оцифрованные
экспериментальные кривые представлены как функции длины волны и выражены в
абсолютных единицах поглощения.




Подготовка исходных данных

Исходные данные для программы готовятся пользователем на одном листе
рабочей книги MS Excel; программа записывает результаты расчетов в тот же
рабочий лист Excel.

Перед началом подготовки данных для программы OptimS необходимо с
помощью пакета HCh создать файл описания системы (файл типа System),
содержащей водный раствор. Из этого следует, в частности, что все частицы
исследуемого водного раствора должны присутствовать в базе данных Unitherm.

Исходные данные для программы OptimS готовятся с помощью программы MS
Excel (версии не ниже 97) в соответствии с форматом, описанном далее. Файл
с именем OptS_ex.xls является примером файла исходных данных для программы
OptimS. Он представляет собой рабочую книгу Excel с одним рабочим листом,
содержащим всю необходимую информацию задачи. Для удобства пользователя на
этапе освоения программы, на рабочем листе этого примера некоторые ячейки
снабжены комментарии, поясняющими правила подготовки исходных данных. Ниже
перечислены основные моменты, на которые надо обратить внимание.

В начале листа вводятся: название системы (ячейка A1 или B1); полный
путь к базе данных Unitherm, используемой для расчета равновесий; полное
имя файла типа System (включая путь), описывающего раствор; опции программы
Gibbs. Среди последних рекомендуется задавать опцию /s. Ряд опций может
понадобиться для задания различных режимов расчета коэффициентов активности
частиц водного раствора (подробности см. в документации к программе Gibbs).
Опция /g может оказаться полезной, если требуется заменить какие-либо
стандартные энергии частиц (см. описание файла типа *.stg).

Далее вводятся температура (в градусах Цельсия) и давление (в барах),
при которых снимались спектры поглощения.

Следующая пара параметров задает интервал длин волн, для которого будет
выполняться обработка спектров. Это позволяет легко менять обрабатываемый
диапазон спектров, не изменяя основную таблицу данных. Длины волн
указываются в нанометрах.

Затем задаются частицы водного раствора, участвующие в формировании
кривых поглощения. Здесь должны присутствовать все частицы, формирующие
спектры, независимо от того, планируется ли оптимизировать их свободные
энергии или нет. В соответствующем поле (ячейка B9) пользователь должен
явно указать количество поглощающих частиц (программа позволяет задавать от
одной до восьми частиц). В последующих строках (в колонке B) эти частицы
должны быть заданы своими именами, причем имена частиц должны быть указаны
в точности так, как они записаны в файле System. Справа от имени каждой
частицы (в столбце Initial) можно указать начальные значения их энергий -
это значения свободных энергий, с которых начнется оптимизация. Если
начальная энергия какой-либо частицы не задана, она будет рассчитана
программой OptimS автоматически сразу после открытия данного файла.

Следующая информация, необходимая для описания задачи - химические
составы водных растворов, поглощение которыми измерялось. Данные
представляются в виде таблицы, каждая строка которой представляет компонент
раствора, а число столбцов соответствует числу растворов. Для
определенности задачи необходимо, чтобы число растворов было не меньше, чем
число поглощающих частиц, заданное выше, а для устойчивости решения
желательно, чтобы оно заметно превосходило число частиц (по крайней мере,
вдвое). Каждая строка таблицы должна начинаться с химической формулы
компонента, за которой должны следовать моляльности этого компонента в
каждом из растворов. Так как составы растворов задаются в моляльностях,
количество воды здесь задавать не надо - программа сама добавит 1 кг воды в
каждый раствор. Если в каком-то растворе данный компонент отсутствует, в
соответствующей ячейке необходимо ввести значение 0 - пустые ячейки в этой
таблице не допускаются (так как число растворов нигде явно не задается,
программа определяет его по длине строк данной таблицы). Если введенный
компонент раствора не участвует в формировании спектров поглощения, в конце
соответствующей строки таблицы необходимо добавить слово "corrected" (или
знак "*"). Этот признак говорит программе о том, что основная таблица
представляет собой так называемый «скорректированный» спектр, т. е.
получена путем вычитания спектра «холостого» раствора из спектра «полного»
раствора.

В качестве примера рассмотрим файл OptS_ex. В этом файле представлены
данные по определению свойств хлоридных комплексов свинца. С этой целью
небольшая навеска PbCl2 добавлялась к различным растворам HCl и NaCl. При
интерпретации «полных» спектров поглощения этими растворами возникает
несколько проблем. Во-первых, количество поглощающих частиц в этих
растворах довольно большое, что сильно затрудняет интерпретацию результатов
(если они вообще могут быть получены). С другой стороны, значительная часть
сигнала поглощения обусловлена самой водой, и возникает проблема выделения
на его фоне сигнала, обусловленного исследуемыми частицами. Наконец,
существенную помеху могут создавать и другие частицы, присутствующие в
растворах в значительных концентрациях, но не представляющие для
исследователя никакого интереса. Эти проблемы решаются обычно путем
корректировки «полного» спектра поглощения путем простого вычитания из него
спектра поглощения «холостым» раствором, т. е. раствором такого же состава,
но без добавки PbCl2. Такая операция позволяет надеяться, что
«скорректированный» спектр определяется уже только добавленным компонентом,
т. е. в данном случае ионами PbCl-, PbCl2 и т. д.

В конце таблицы составов растворов рекомендуется добавить строку с
названием "d, g/cm3", содержащую плотности всех растворов при данных
температуре и давлении. Наличие этой строки позволит программе OpimS
выразить концентрации всех частиц в молярной шкале, что более точно
соответствует физическим законам поглощения. Если эту строку не вводить,
расчеты будут выполняться для моляльностей.

Еще одной необязательной строкой, относящейся к таблице растворов,
является строка с названием "weight", в которую можно поместить
относительные веса растворов. Если эта строка не вводится, программа
считает относительные веса всех растворов равными единице. Представляется
маловероятным, что разные растворы могут иметь разные точности определения
поглощения, поэтому вводить эту строку имеет смысл в тех случаях, когда
требуется временно исключить из рассмотрения какой-либо раствор (например,
при подозрении, что данные по этому раствору ошибочны). В этих случаях
можно задать вес временно исключаемого раствора равным нулю, оставив все
остальные веса равными единице. Не следует злоупотреблять этой
возможностью, так как уменьшение числа растворов неблагоприятно влияет на
устойчивость решения задачи.

Наконец, последней частью исходной информации является основная таблица
данных - значения величин поглощения, измеренные во всех растворах при всех
длинах волн. Первый столбец таблицы должен содержать длины волн (в
нанометрах) в возрастающем порядке, остальные - значения величин поглощения
для всех растворов (в том числе и временно исключенных). Каждый столбец
таблицы должен иметь заголовок: для первого это ключевое слово
"WaveLength", для остальных - названия растворов (выбираются произвольно,
однако не могут быть пустыми). Таблица данных является логическим
продолжением таблицы растворов, то есть столбцы обеих таблиц должны друг
другу соответствовать. Признаком конца таблицы данных является пустая
строка.

Возможны ситуации, когда при некоторой длине волны в некотором растворе
величина поглощения не определена. Эта ситуация может возникнуть, например,
если поглощение превышает максимальное значение, регистрируемое
спектрометром. В такой ситуации можно соответствующую ячейку таблицы
оставить пустой, однако, лучшим решением является занесение в нее значения
"#N/A" (в русской версии Excel - "#Н/Д"). Задание этого специального
значения облегчает автоматизированную корректировку спектральных данных
(вычитание спектров) с помощью Excel, так как при выполнении арифметических
операций Excel интерпретирует пустую ячейку как содержащую ноль.

После ввода всей исходной информации файл следует записать на диск в
формате рабочей книги Excel (расширение .xls).




Работа с программой OptimS

Главное окно программы состоит из текстового поля, содержащего имя
текущего рабочего файла данных, шести кнопок, позволяющих выполнить базовые
функции программы, и строки состояния. Сразу после запуска программы
пользователю доступна только кнопка открытия файла данных; когда файл
открыт, все остальные кнопки тоже становятся доступны. Кнопки управления
расположены в два ряда; последовательность расположения кнопок
соответствует наиболее употребительной последовательности операций,
совершаемых при интерпретации спектров поглощения. Ниже подробно описаны
функции, выполняемые при нажатии кнопок управления программой.



Кнопка Open/Refresh позволяет выполнить первоначальное открытие
рабочего файла (о его подготовке см. выше) или его повторное чтение, если
пользователь изменил какие-либо данные на рабочем листе. Программа OptimS
запускается независимо от программы Excel. При нажатии кнопки Open/Refresh
действия программы зависят от того, содержит ли текстовое поле имя рабочего
файла и активна ли в этот момент программа Excel.

Если поле имени файла пусто, и в памяти компьютера нет ни одной
открытой рабочей книги Excel (например, программа Excel еще не запущена),
нажатие кнопки Open/Refresh приводит к появлению стандартного диалога
открытия файла, в котором пользователь может выбрать рабочую директорию
(папку) и необходимую ему рабочую книгу Excel. После нажатия кнопки Open в
этом диалоге программа OptimS запускает Excel (если необходимо) и открывает
требуемый файл. В поле имени рабочего файла появляется имя только что
открытой рабочей книги, а текущим листом становится первый рабочий лист
книги.

Если поле имени файла пусто, но в памяти компьютера уже есть открытая
рабочая книга Excel, то имя этой книги будет помещено программой в поле
имени файла, а открытый рабочий лист этой книги станет текущим для
программы OptimS.

Если открытой рабочей книги Excel в памяти компьютера нет, но в поле
имени файла задано имя рабочей книги, программа пытается открыть этот файл,
предполагая, что он расположен в рабочей директории. Если файл не найден в
рабочей директории[1], выдается сообщение об ошибке.

Если в момент нажатия кнопки Open/Refresh в памяти компьютера уже
имеется открытый рабочий файл, но имя файла изменено пользователем, то
программа пытается дополнительно открыть указанную рабочую книгу. При
успешном открытии эта книга становится текущей (а текущим листом - ее
первый рабочий лист), иначе выдается сообщение об ошибке, а предыдущая
рабочая книга (и лист) сохраняется открытой, но не активной.

Как следует из описанного алгоритма, программа OptimS открывает, как
правило, первый лист указанной пользователем рабочей книги. Поэтому самым
простой и удобной организацией работы является расположение данных
спектрометрии именно на первых листах рабочих книг Excel. Если же по каким-
либо соображениям пользователю желательно обрабатывать подобные данные,
расположенные на произвольных листах рабочих книг, то открывать их
программой OptimS придется только одним способом: сначала программой Excel
открыть требуемый рабочий лист, и лишь затем в OptimS очистить поле имени
файла (если требуется) и нажать кнопку Open/Refresh.

Во всех случаях сразу после успешного открытия файла данных программа
OptimS начинает читать из него информацию и проверять ее на наличие ошибок
(это требует некоторого времени, будьте терпеливы). Если программа
обнаруживает ошибку во вводимых данных, она немедленно выдает
соответствующее сообщение; в этом случае кнопки, предназначенные для
обработки данных, остаются недоступными. Единственное, что пользователь
может сделать в этой ситуации (если он все еще хочет работать с этим
файлом) - это исправить обнаруженную ошибку непосредственно на рабочем
листе и снова нажать кнопку Open/Refresh. Если же открытие файла данных
произошло успешно (т. е. ошибок не было обнаружено), программа выполняет
несколько дополнительных операций: 1) вставляет в соответствующие ячейки
начальные значения свободных энергий частиц (если необходимо), 2) вычисляет
равновесные концентрации всех частиц во всех растворах по начальным
значениям энергий, 3) основываясь на этих концентрациях, вычисляет
коэффициенты экстинкции всех поглощающих частиц для каждого раствора и
каждой длины волны в заданном диапазоне, 4) рассчитывает
среднеквадратическую погрешность описания всех спектров поглощения и 5)
выводит это значение на рабочий лист. Если все эти операции выполнены
успешно, в строке состояния программы появляется строка "Initial data set.
Error: <погрешность>" и разблокируются все кнопки, что позволяет начать
работу с введенными данными.

Хотя все описанные выше действия выполняются при нажатии кнопки с
двойным названием Open/Refresh, между этими двумя операциями имеется
различие. "Open" означает, что все данные задачи считываются из файла на
диске и помещаются в рабочую книгу Excel, размещенную в памяти компьютера;
эти действия выполняются лишь один раз - при первоначальном открытии файла
данных. "Refresh" означает, что данные считываются не с диска, а из рабочей
книги, которая уже загружена в память; эта операция выполняется в случае,
когда данные на рабочем листе изменены пользователем или самой программой.
Записать изменения обратно на диск можно только средствами программы Excel
- либо командой Save (или Save As.) из меню File, либо путем
утвердительного ответа на запрос о сохранении файла при закрытии программы
Excel.

С точки зрения пользователя операция Refresh - это частный случай
операции Open, когда активным рабочим листом Excel является текущий рабочий
файл, а в текстовом поле файла уже стоит его имя. Работая с одним и тем же
файлом, пользователь может нажать кнопку Open/Refresh в любой момент. Это
может потребоваться, например, для получения нового значения погрешности
после изменения исходных энергий «вручную» или просто для проверки наличия
ошибок после изменения каких-либо данных на текущем рабочем листе.
Программа OptimS сама запускает операцию Refresh каждый раз, когда считает
это необходимым. Например, с этой операции начинаются почти все функции,
запускаемые остальными командными кнопками, если данные на текущем листе
были изменены пользователем и могут, таким образом, не совпадать с их
копией, имеющейся в памяти программы OptimS.



Кнопка Goal function вызывает диалог, позволяющий визуально оценить
качество спектральных данных и перспективы решения задачи оптимизации
свободных энергий частиц, а также во многих случаях ускорить это решение.

Оптимизация свободных энергий поглощающих частиц выполняется в
программе OptimS, как уже указывалось, методом наименьших квадратов. Это
означает, что критерием качества некоторого набора свободных энергий частиц
является выражение

[pic], (3)

где индекс i перечисляет все длины волн заданного диапазона, j - все
растворы, k - все поглощающие частицы; равновесные концентрации Ckj
получены по данному набору свободных энергий, а коэффициенты экстинкции ?ik
вычислены по Ckj и Aij методом наименьших квадратов с ограничивающими
условиями неотрицательности (?ik ( 0).

Свободные энергии поглощающих частиц считаются оптимальными, если
вычисленное для них значение S2 достигает минимально возможного значения.
Таким образом, целью программы является минимизация выражения (3), поэтому
саму функцию S2 называют целевой.

В действительности в программе OptimS в качестве целевой функции
показывается не (3), а среднее квадратическое отклонение s, которое
вычисляется как [pic], где nw - число длин волн, ns - число растворов, nc -
число поглощающих частиц. Среднеквадратическая ошибка s монотонно зависит
от S2 (т.е. они достигают минимума одновременно), но обладает тем
преимуществом, что имеет величину порядка погрешности единичного измерения
и почти не зависит от размерности задачи (диапазона частот, числа растворов
и числа поглощающих частиц).

Независимыми аргументами целевой функции являются стандартные свободные
энергии поглощающих частиц, то есть это - функция nc аргументов. Значения
энергий при выполнении этой функции всегда берутся из колонки Initial (см.
описание файла исходных данных).

Диалог "Goal Function" показывает, как изменяется целевая функция при
изменении стандартной свободной энергии выбранной переменной (поглощающей
частицы). Вдоль оси абсцисс на графике отложены приращения свободных
энергий, т.е. значение "0" на оси абсцисс (в центре графика) соответствует
текущей свободной энергии данной частицы, представленной в столбце Initial.
Можно просмотреть эту зависимость для всех аргументов (выбор частицы-
аргумента производится с помощью комбинированного управляющего элемента,
или колеса мыши, или нажатием на клавиатуре стрелок «вверх» и «вниз»).
Дополнительно можно посмотреть график изменения целевой функции в
направлении градиента, то есть при согласованном изменении всех независимых
переменных, обеспечивающем максимальную скорость ее изменения.

Единицей измерения свободных энергий в программе OptimS является
kJ/mol; при первоначальном открытии диалога диапазон изменения аргумента
составляет (10 kJ/mol. Две дополнительные кнопки с надписями "-" и "+"
позволяют изменять масштаб графика (по оси X) в сторону уменьшения или
увеличения соответственно. Измененный масштаб будет сохраняться для всех
последующих просмотров до нового явного его изменения.

Использование диалога "Goal function" может быть двояким. Прежде всего,
при первом запуске новой задачи рекомендуется всегда просматривать графики
изменения целевой функции вдоль разных направлений с целью оценки качества
матрицы данных. При хорошем качестве данных целевая функция должна иметь
гладкий вид и иметь явно выраженный минимум вдоль всех направлений. Если
это не так, то решение задачи оптимизации свободных энергий поглощающих
частиц вряд ли будет успешным - в этом случае надо пересмотреть постановку
задачи (например, убедиться в том, что выбор списка поглощающих частиц
сделан правильно) или перепроверить качество подготовки спектров.

Второе применение диалога - ускорение решения задачи оптимизации. Так
как целевая функция этой задачи существенно нелинейна (более того, она не
выпукла), для ее решения применяется итерационный алгоритм, требующий
задания хороших начальных приближений. А поскольку она не имеет
аналитического представления, все производные этой функции в процессе
итераций оцениваются численно, что делает процесс решения задачи довольно
долгим. Поэтому в диалоге "Goal function" предусмотрено средство изменения
начальных энергий поглощающих частиц. Делается это просто: достаточно
установить указатель мыши на желаемую точку графика и сделать двойной
щелчок - и то приращение свободной энергии, на которое указано мышью, будет
добавлено к текущей энергии данной частицы. После этого график целевой
функции будет заново перестроен (придется немного подождать), а новое
значение энергии частицы отобразится в столбце Initial на рабочем листе.
Одновременно будет пересчитано и отображено (под столбцом Initial) новое
значение среднеквадратической ошибки. Выполнив такую операцию несколько раз
для всех независимых переменных целевой функции, можно «вручную»
значительно приблизиться к оптимальному решению задачи, оставив программе
OptimS лишь задачу его окончательного уточнения, что значительно сократит
полное время оптимизации.

Разумеется, при таком «ручном» выборе начального приближения следует
избегать изменения энергий тех поглощающих частиц, которые по смыслу задачи
не должны быть оптимизированы в окончательном решении (например, если целью
работы является нахождение констант комплексообразования - в этом случае
энергии «опорных» частиц должны быть зафиксированы). По той же причине
следует со вниманием отнестись к «ручной» оптимизации энергий частиц по
графику градиента, так как в этом случае изменению энергий будут
подвергаться все поглощающие частицы.

В процессе работы с диалогом можно также вручную изменять энергии
частиц непосредственно на рабочем листе (в столбце Initial). Для того,
чтобы эти изменения отразились на графике, необходимо после этого явно
вызвать новое вычисление целевой функции для данной частицы (или градиента)
- в результате будет выполнено чтение данных с рабочего листа и построение
нового графика.

После того, как все начальные значения свободных энергий частиц
установлены, для продолжения работы с программой OptimS диалог "Goal
function" должен быть закрыт. Это можно сделать с помощью кнопки Close (в
верхнем правом углу диалога) или нажатием на клавиатуре комбинации клавиш
Alt+F4.



Кнопка Optimize запускает итерационный процесс уточнения свободных
энергий поглощающих частиц. Значения свободных энергий, с которых
начинается оптимизация, и набор подлежащих оптимизации энергий частиц
определяются следующим образом.

Если в момент нажатия кнопки Optimize в столбце Result для каких-либо
частиц стояли числа, то именно эти значения используются программой для
этих частиц как в начальной, так и во всех последующих итерациях. Другими
словами, энергии таких частиц не оптимизируются. Таким образом,
оптимизируются энергии только тех частиц, которые не содержали данных в
столбце Result (т.е. чьи ячейки были пусты) в момент нажатия кнопки
Optimize. Начальные энергии для оптимизируемых частиц берутся программой из
столбца Initial.

Если при запуске оптимизации программа обнаруживает, что все ячейки в
столбце Result уже содержат значения, она выдает сообщение о том, что
оптимизировать нечего и предлагает сохранить результаты (коэффициенты
экстинкции и расчетные величины поглощения). При положительном ответе
пользователя программа выводит эти данные на рабочий лист (см. раздел
«Результаты расчетов») и заканчивает операцию. Если же энергии, подлежащие
оптимизации, обнаружены, программа начинает итерации.

На каждой итерации программа OptimS вычисляет концентрации всех частиц
во всех растворах, рассчитывает по ним коэффициенты экстинкции всех
поглощающих частиц, вычисляет по этим данным «теоретические» величины
поглощения и, наконец, рассчитывает значение целевой функции в текущей
точке. Все эти вычисления производятся с учетом всех частиц независимо от
того, подлежат их энергии оптимизации или нет. Затем программа оценивает
частные производные целевой функции по оптимизируемым частицам,
соответствующим образом изменяет свободные энергии этих частиц и переходит
к следующей итерации. Итерации прекращаются, когда приращения энергий всех
оптимизируемых частиц становятся по абсолютной величине меньше, чем 0.1
J/mol.

В процессе итераций строка состояния программы OptimS содержит
информацию о ходе оптимизации: номер итерации и достигнутое значение
целевой функции. Кроме того, промежуточные результаты каждой итерации
отображаются на рабочем листе: столбец Result содержит текущие значения
свободных энергий частиц, а соответствующее значение целевой функции
представлено под этим столбцом (в строке "Mean err."). Следить за ходом
итераций будет удобнее, если до запуска процесса оптимизации
отформатировать числа в ячейках столбца Initial таким образом, чтобы они
представлялись, по крайней мере, с тремя знаками после десятичной точки
(т.е. с точностью до 1 J/mol) - это позволит легко визуально оценивать
сходимость процесса. Если, кроме того, непосредственно перед стартом
оптимизации выделить на рабочем листе ячейку с текущим значением целевой
функции ("Mean err." под столбцом Result), то можно будет по ходу итераций
видеть изменение этой величины в строке формул рабочего листа Excel со
значительно большей точностью, чем непосредственно в ячейке или строке
состояния программы OptimS.

В отличие от других операций программы, при запуске оптимизации не
появляется никакого диалогового окна, однако все управляющие кнопки
основного окна программы OptimS становятся недоступными (как, впрочем, и
рабочий лист Excel), так как выполнение других действий параллельно с
оптимизацией недопустимо. Если ход оптимизации кажется пользователю
неудовлетворительным или имеются другие причины для остановки процесса,
оптимизацию можно прекратить, щелкнув мышью на кнопке Close основного окна
OptimS (будьте внимательны: в остальных режимах эта кнопка закрывает
программу) или нажав на клавиатуре клавишу Esc. Программа сообщит, что
оптимизация прервана пользователем и предложит сохранить текущий результат.
Как правило, на этот запрос следует отвечать отрицательно, так как
программа имеет в виду не текущие значения свободных энергий (они в любом
случае остаются в столбце Result), а коэффициенты экстинкции и величины
поглощения, которые обычно нужны лишь как детализация окончательного
решения задачи.

Если на рабочем листе что-то было изменено после остановки оптимизации,
то при последующем нажатии кнопки Optimize программа выполнит операцию
Refresh, а затем начнет оптимизацию с самого начала. Если же после
остановки процесса оптимизации снова нажать кнопку Optimize, ничего не
изменив на рабочем листе, процесс оптимизации будет продолжен с текущей
точки и в том же режиме (правда, счет итерациям начнется с единицы). В этом
случае - при продолжении оптимизации - в порядке исключения оптимизируются
энергии, уже имеющие значения в столбце Result в момент нажатия кнопки
Optimize. Этим свойством программы можно воспользоваться и после
нормального завершения процесса, если возникнет желание уточнить
результаты.

При нормальном завершении процесса оптимизации программа OptimS без
лишних вопросов выводит на рабочий лист окончательные значения
коэффициентов экстинкции для всех поглощающих частиц и расчетные величины
поглощения для всех растворов. Эти данные вычисляются только для заданного
диапазона длин волн - от wl_start до wl_end (подробнее см. в разделе
«Результаты расчетов»). Затем программа переходит к расчету доверительных
интервалов (на уровне значимости 5%) для полученных значений свободных
энергий частиц. Этот расчет занимает довольно много времени, поэтому он
сопровождается показом индикатора выполнения (Progress bar). Если расчет
успешен, полученные доверительные интервалы (в kJ/mol) выводятся в столбец
"±" сразу за столбцом Result. Для фиксированных энергий (т.е. тех, которые
не оптимизировались) доверительные интервалы не вычисляются. Если
доверительные интервалы вычислить не удалось, выводится соответствующее
сообщение об ошибке. На этом оптимизации энергий заканчивается и командные
кнопки программы OptimS разблокируются.

Столбец "±" предназначен для вывода рассчитанных программой
доверительных интервалов оптимизированных параметров, но он может также
применяться и для задания пользователем априорных оценок точности
оптимизируемых энергий. Это может потребоваться в случае, если энергии
некоторых частиц растворов не могут быть оценены программой с точностью,
требуемой для окончания итераций (например, из-за низких концентраций,
слабого поглощения, большой погрешности измерений и т. п.). Для уменьшения
требований к точности оптимизации энергий таких «неустойчивых» частиц можно
задать для них более высокое значение априорного доверительного интервала -
это может позволить программе получить решение даже при неуверенной
сходимости. Априорные значения доверительных интервалов выбранных частиц
надо указывать до запуска оптимизации, так как программа начинает
оптимизацию с чтения этих значений и последующей очистки столбца "±".



Три командные кнопки, описанные выше, позволяют выполнять вычисления,
необходимые для решения задачи. Три нижние кнопки, расположенные под
строкой состояния, предназначены для графического представления различных
данных задачи и позволяют лучше понять ее структуру, получить более полное
представление о соотношениях между ее параметрами, а также просмотреть
полученные результаты.

Кнопка Speciation вызывает диалог, графически показывающий изменение
концентраций поглощающих частиц от одного раствора к другому. По оси
абсцисс графиков отложены номера растворов от 1 до ns, по оси ординат -
моляльности частиц. На первом графике представлены одновременно все
частицы; разным частицам соответствуют кривые разного цвета. Если указать
мышью на какую-либо кривую, на графике появится название соответствующей
частицы.

Так как поглощающие частицы не всегда имеют концентрации близких
порядков величины, возможно, что иногда может оказаться неудобным
рассматривать их все в едином масштабе. Поэтому в диалоге "Concentration of
species" предусмотрена возможность их независимого представления. Нужную
частицу можно выбрать с помощью выпадающего списка или просмотреть их все,
нажимая на клавиатуре клавиши «вверх» или «вниз» или вращая колесо мыши.

При желании можно представить концентрации в логарифмическом масштабе.
Для этого достаточно отметить галочкой "Logarithmic scale".

Следует помнить, что концентрации частиц, представленные на этих
графиках, получены по энергиям, рассчитанным (программой OptimS) последними
перед вызовом данного диалога. Это означает, что, если перед нажатием
кнопки Speciation последней выполнялась операция Open/Refresh или Goal
function, то для расчета концентраций частиц программа использует их
энергии из столбца Initial; если же последней расчетной операцией была
оптимизация энергий, то концентрации частиц в этом случае рассчитываются по
энергиям из столбца Result.

Данный диалог модальный, то есть не допускает параллельную работу с
основной программой. Для продолжения работы с программой OptimS этот диалог
нужно закрыть либо кнопкой Close с помощью мыши, либо клавишами Alt+F4.

Кнопка Extinction coefficients вызывает одноименный диалог, графически
показывающий изменение коэффициентов экстинкции всех поглощающих частиц в
зависимости от длины волны. По оси абсцисс графиков отложены длины волн (в
нм); по оси ординат - коэффициенты экстинкции, рассчитанные методом
наименьших квадратов из соотношения (2) (напомним, что данные значения не
являются абсолютными, так как включают в себя как множитель длину
оптического пути). На первом графике представлены одновременно все
поглощающие частицы; разным частицам соответствуют кривые разного цвета.
Если указать мышью на какую-либо кривую, на графике появится название
соответствующей частицы.

Так как поглощающие частицы не всегда имеют коэффициенты экстинкции
близких порядков величины, возможно, что иногда может оказаться неудобным
рассматривать их все в едином масштабе. Поэтому в диалоге "Extinction
coefficients" предусмотрена возможность их независимого представления.
Нужную частицу можно выбрать с помощью выпадающего списка или просмотреть
их все, нажимая на клавиатуре клавиши «вверх» или «вниз» или вращая колесо
мыши.

При желании можно представить коэффициенты экстинкции в логарифмическом
масштабе. Для этого достаточно отметить галочкой "Logarithmic scale".

Следует помнить, что коэффициенты экстинкции частиц, представленные на
этих графиках, получены по энергиям, рассчитанными (программой OptimS)
последними перед вызовом данного диалога. Это означает, что, если перед
нажатием кнопки Extinction coefficients последней выполнялась операция
Open/Refresh или Goal function, то для расчета коэффициентов экстинкции
частиц программа использует их энергии из столбца Initial; если же
последней расчетной операцией была оптимизация энергий, то коэффициенты
экстинкции частиц рассчитываются по энергиям из столбца Result.

Данный диалог модальный, то есть не допускает параллельную работу с
основной программой. Для продолжения работы с программой OptimS этот диалог
нужно закрыть либо кнопкой Close с помощью мыши, либо клавишами Alt+F4.

Кнопка Absorption вызывает диалог "Absorption spectra", позволяющий
визуально оценить степень согласия между расчетными и измеренными спектрами
поглощения для всех растворов. По оси абсцисс графиков отложены длины волн
(в нм); по оси ординат - величины поглощения в абсолютных единицах. На
первом графике представлены только исходные спектры поглощения для всех
растворов; разным растворам соответствуют кривые разного цвета. Если
указать мышью на какую-либо кривую, на графике появится название
соответствующего раствора.

Выпадающий список диалога, колесо мыши или клавиши «вверх» и «вниз»
позволяет просмотреть спектры для каждого раствора отдельно; в этом случае
одновременно с измеренным спектром для каждого раствора (синяя кривая)
приводится и расчетный спектр поглощения тем же раствором (красная кривая),
вычисленный по формуле (2). Эта возможность сравнения исходного и
расчетного спектров для одного и того же раствора позволяет оценить
качество модели растворов и экспериментальных данных.

Следует помнить, что спектры поглощения, представленные на этих
графиках, получены по энергиям, рассчитанными (программой OptimS)
последними перед вызовом данного диалога. Это означает, что, если перед
нажатием кнопки Absorption последней выполнялась операция Open/Refresh или
Goal function, то для расчета спектров программа использует энергии частиц
из столбца Initial; если же последней расчетной операцией была оптимизация
энергий, то спектры рассчитываются по энергиям из столбца Result.

Данный диалог отличается от остальных в двух отношениях. Во-первых,
его размер можно увеличить (вплоть до полного экрана). Во-вторых, он не
модальный, то есть его не обязательно закрывать, чтобы продолжить работу с
программой OptimS. Хотя, конечно, лучше все-таки закрыть для экономии
ресурсов компьютера.



Результаты расчетов

Как было сказано выше, процесс оптимизации свободных энергий частиц
водного раствора выполняется итеративно. Каждая итерация характеризуется
своим (текущим) набором значений свободных энергий оптимизируемых частиц.
Эти значения в начале каждой итерации записываются в столбец "Result" (за
исключением "нулевой" итерации, когда вычисляется состояние системы в
"начальный" момент - в этом случае энергии частиц берутся из столбца
"Initial"). На каждой итерации для текущих значений свободных энергий
вычисляется равновесный состав всех растворов, из которых, в свою очередь,
вычисляются значения коэффициентов экстинкции и величины поглощения; затем
вычисляется невязка (разность между экспериментальным и рассчитанным
значением A). Наконец, по этим разностям определяется среднеквадратическая
ошибка, которая выводится в строку состояния программы и на рабочий лист (в
ячейку Mean err. под столбцом Result). Эти данные (текущие энергии и
соответствующая им ошибка) сохраняются на рабочем листе в случае прерывания
пользователем процесса оптимизации свободной энергии частиц.

В противоположность этому, текущие (вычисляемые) значения коэффициентов
экстинкции и величин поглощения в процессе итераций на рабочий лист не
выводятся, так как обмен информацией между программами Excel и OptimS
довольно медленный, а объем указанной информации значителен. Поэтому, если
после прерывания процесса оптимизации желательно сохранить на рабочем листе
и эту информацию, то надо ответить утвердительно на запрос программы о
сохранении результатов. При нормальном завершении оптимизации указанные
данные выводятся на рабочий лист автоматически без дополнительных запросов.

Коэффициенты экстинкции выводятся на рабочий лист справа от основной
таблицы исходных данных и отделяются от нее пустой колонкой. Расчетные
величины поглощения выводятся еще правее, отделенные от коэффициентов
экстинкции еще одной пустой колонкой. Строки этих таблиц являются
продолжениями строк исходной таблицы, то есть соответствуют длинам волн,
указанных в первой колонке таблицы данных. Строки для длин волн, выходящих
за пределы заданного диапазона (wl_start - wl_end), в таблицах результатов
не заполняются (ячейки остаются пустыми), поэтому результаты можно не
увидеть на экране, если обрабатывается лишь часть спектра. Заголовки
столбцов для таблиц результатов расположены, тем не менее, в той же строке,
что и заголовки таблицы исходных данных. Дополнительно, для удобства
пользователя, над каждым названием раствора в заголовке расчетных величин
поглощения приводятся среднеквадратические отклонения, вычисленные по
данным только этого раствора. Эти отклонения приводятся для всех растворов,
в том числе и для тех, которые были исключены из обработки с помощью
задания нулевого веса (сравните эти величины с расхождениями кривых
поглощения на графиках, получаемых по команде Absorption).

При нормальном завершении оптимизации программа OptimS также
рассчитывает доверительные интервалы для найденных значений свободных
энергий (на 5%-м уровне) и помещает их на рабочий лист в столбец "±" справа
от столбца "Result". Доверительные интервалы имеют ту же размерность, что и
свободные энергии и невязки, то есть kJ/mol.

Примечание: Если Вы рассматриваете рабочий лист Excel с результатами
расчетов по программе OptimS, выполненными ранее, но не помните, были ли
эти расчеты доведены до конца или перед Вами промежуточный результат (т. е.
расчет был прерван нажатием кнопки Close), посмотрите на столбец
доверительных интервалов: наличие последних - верный признак того, что
расчеты закончились успешно.



Дополнительные возможности

Описанные выше операции являются базовыми для программы OptimS и
доступны через командные кнопки. Однако программа позволяет выполнять и
некоторые другие операции, не представленные в графическом интерфейсе
пользователя. Таким образом, эти дополнительные возможности можно
рассматривать как бонусы для пользователей, которые читают документацию к
программам. Дополнительные операции запускаются с клавиатуры нажатием
функциональных клавиш. Нужно помнить, что ввод с клавиатуры всегда
передается системой активному окну, поэтому перед вызовом этих операций
нужно убедиться в том, что активна именно программа OptimS, а не Excel или
какая-нибудь другая программа.



Бонус 1 - для тех, кто верит в факторный анализ.

Если рабочий файл открыт, а программа OptimS не занята выполнением
других операций, то при нажатии клавиши F1 открывается диалог "Reverse
Indicator Function". На графике этого диалога представлена функция,
обратная к индикаторной функции Малиновского ([1]: Malinowski E. R.
Determination of the number of factors and the experimental error in the
data matrix (1977) / Anal. Chem., vol. 48, No. 4, pp. 612-617). Эта функция
предназначена для определения «числа факторов», контролирующих изменчивость
данных в исходной таблице поглощений и строится на основе анализа дисперсий
главных компонент. В работе [1] было предложено определять число факторов
по точке минимума индикаторной функции, однако авторы другой работы ([2]:
Boily J.-F. and Seward T. M. Palladium(II) chloride complexation:
Spectrophotometric investigation in aqueous solutions from 5 to 125њC and
theoretical insight into Pd-Cl and Pd-OH2 interactions (2005) / Geochim.
Cosmochim. Acta, vol. 69, No. 15, pp. 3773-3789) предложили использовать
обратную к ней величину, так как максимальное значение более наглядно. Это
предложение и реализовано нами в программе OptimS. Диапазон изменения
аргумента индикаторной функции ограничен числом растворов (т.е. числом
столбцов основной таблицы данных).
Авторы работ [1] и [2] утверждают, что число факторов, определяемое с
помощью индикаторной функции, соответствует числу поглощающих частиц в
данных растворах. Возможно, это было бы так, если бы каждая частица имела
по одной полосе поглощения. По нашим наблюдениям, более правильно
интерпретировать эту величину как суммарное число выраженных полос (пиков)
поглощения всех поглощающих частиц. Вы можете поэкспериментировать, изменяя
диапазон длин волн в обрабатываемой части спектра и сравнивая число пиков в
кривых поглощения, попадающих в этот интервал, с числом факторов,
вычисляемым для этого диапазона.

В работе [1] был также предложен способ оценки инструментальной
погрешности определения величин поглощения, получаемый из анализа матрицы
данных. Этот метод также реализован в данной программе. Оценка погрешности
(RMS) выражена в единицах поглощения и приводится непосредственно под
графиком индикаторной функции.

В факторном анализе принято считать, что использование значений
ограниченного (но обоснованного) числа главных компонент (или факторов)
вместо полного набора исходных данных позволяет уменьшить случайную
составляющую (шум) исходного сигнала и, таким образом, сделать решение
более точным и устойчивым. Индикаторная функция как раз и используется для
обоснования этого числа, так как компоненты в ниспадающей части графика
интерпретируются как факторы шума. Однако, на наш взгляд, польза от
применения этого подхода в данном случае сомнительна, так как метод
наименьших квадратов, применяемый к полному набору исходных данных,
выполняет ту же самую функцию (кстати, сам метод главных компонент
обосновывается именно методом наименьших квадратов). Тем не менее, Вы
можете поэкспериментировать с Вашими данными, обрабатывая их программой
OptimS при условии ограничения числа факторов изменчивости. Для этого
достаточно выбрать желаемое число используемых главных компонент в "Number
of factors" (по умолчанию, как и рекомендовано в [2], предлагается число,
отвечающее максимуму обратной индикаторной функции) и поставить галочку у
"Try to reduce errors in data matrix", после чего закрыть диалог и
запустить оптимизацию как обычно. Указанный режим ограничения числа
факторов будет сохраняться в текущей сессии работы OptimS для всех базовых
команд вплоть до явного изменения (с помощью этого же диалога) числа
факторов или до явной отмены этого режима. Чтобы отменить «факторный» режим
работы программы OptimS нужно снова нажать клавишу F1, снять галочку этого
режима и закрыть диалог (этот диалог модальный; он закрывается, как и
остальные диалоги в этой программе, кнопкой Close или клавишами Alt+F4).

Нужно помнить, что вид индикаторной функции, представленный в этом
диалоге, не зависит от текущих значений свободных энергий частиц,
рассчитанных коэффициентов экстинкции и т. д. - он определяется только
матрицей исходных данных (и, естественно, текущим диапазоном длин волн).
Поэтому в обычной ситуации нет смысла открывать его слишком часто. Мы
рекомендуем использовать его в самом начале работы с новой задачей (и при
смене диапазона) для оценки качества набора экспериментальных данных и
ориентировочного определения ожидаемого суммарного числа пиков в
коэффициентах экстинкции. Согласно автору [1], вид индикаторной функции
много говорит о качестве экспериментальных данных и перспективах его
обработки: у правильно поставленной задачи эта функция должна иметь
единственный экстремум (в нашем случае максимум), расположенный в
центральной части графика.



Бонус 2 - для тех, кто сомневается в правильности корректировки
спектров.

Несмотря на значительный объем информации, выдаваемой программой OptimS
на рабочий лист, эта информация все-таки является неполной - в ней
отсутствуют рассчитываемые программой концентрации частиц водных растворов.
Это может иногда вызвать сомнения в адекватности используемой модели
поглощения, если результаты расчетов оказались не соответствующими
ожиданиям исследователя. Например, если в некотором интервале длин волн
ошибка описания спектров поглощения оказалась заметно больше, чем в
остальных частях спектра, может возникнуть предположение, что в растворах
присутствует неучтенная поглощающая частица. Если к тому же исследователь
уверен, что полный набор возможных частиц растворов задан им правильно, то
единственная возможность появления в спектре неучтенной частицы - это
неудачная корректировка составов растворов и, соответственно, спектров
поглощения.

Другой пример нежелательного эффекта, возникающего при корректировке
спектра, заключается в следующем. Корректировка спектра, как известно,
выполняется путем вычитания спектра «холостого» раствора из спектра
«полного» раствора. В результате операции вычитания могут появиться и
отрицательные значения величин поглощения. Если эти значения невелики по
абсолютной величине, к ним можно относиться как к погрешности вычислений,
то есть игнорировать (методу наименьших квадратов они не мешают). Однако
отрицательные значения в скорректированных спектрах могут иметь и заметную
величину, игнорировать которую нельзя. Так как коэффициенты экстинкции по
определению положительны (программа OptimS следит за выполнением этого
условия), отрицательное значение величины поглощения означает, что
отрицательна и величина концентрации поглощающей частицы (в
«скорректированном» растворе). Для проверки этого вывода и для определения
частиц, имеющих отрицательные концентрации, можно воспользоваться
дополнительной возможностью, предоставляемой программой OptimS.

Если программа OptimS не выполняет других операций, то при нажатии
клавиши F2 запускается следующая процедура. По текущим значениям свободных
энергий частиц программа вычисляет составы всех «холостых» и «полных»
растворов, производит корректирующее вычитание их составов и полученные
результаты записывает на диск в виде таблицы. После этого программа выдает
сообщение о выполненной операции.

Таблица, содержащая составы скорректированных растворов, записывается в
текущую рабочую директорию в виде файла с именем Solutions.txt. Файл имеет
текстовый формат с разделителями (Tab-delimited) и может быть легко
импортирован программой Excel для подробного изучения. Столбцы таблицы
соответствуют растворам (обозначены номерами), строки - частицам
(обозначены их именами как в файле System), размерность концентраций частиц
- молярность (если рабочий Excel-файл содержит строку с мольными объемами
растворов). В этой таблице представлены не только поглощающие частицы,
перечисленные на рабочем листе, но все частицы, имеющиеся в файле System
(включая воду). Изучение этой таблицы может дать информацию о том,
действительно ли корректировка растворов позволила устранить влияние
нежелательных для анализа частиц.

Так как при расчетах составов растворов используются текущие значения
свободных энергий частиц, результаты, получаемые при нажатии клавиши F2,
зависят от того, в какой момент эта клавиша нажата. Так, если эта операция
выполняется после операций Open/Refresh или Goal function, для расчета
составов растворов используются энергии из столбца Initial; если же перед
этой операцией выполнялась оптимизация энергий, то они берутся из столбца
Result.



Бонус 3 - для тех, кто любит гладкие кривые.

Применяемый в программе OptimS способ расчета коэффициентов экстинкции
- независимо для каждой длины волны - дает максимально возможную степень
согласия между экспериментальными и расчетными данными (или, что то же
самое, наименьшую сумму квадратов отклонений). Однако, результаты,
полученные таким образом, могут в некоторых случаях не удовлетворить
исследователя из-за возможной негладкости графиков изменения коэффициентов
экстинкции как функций длины волны. Получить гладкие кривые для
коэффициентов экстинкции можно только одним способом: заранее задать вид
функциональной зависимости этих величин от длины волны (или частоты
излучения), и затем оптимизировать параметры этой зависимости, а не сами
коэффициенты.

К сожалению, теоретический вид зависимости коэффициентов экстинкции от
частоты или длины волны излучения в настоящее время неизвестен (по крайней
мере, для водных растворов), поэтому на практике обычно применяют
эмпирический подход, при котором наблюдаемая (вычисляемая) кривая
аппроксимируется некоторой кривой (или их комбинацией) стандартного вида. В
качестве такой стандартной кривой чаще всего используется кривая Гаусса,
или гауссиана. Эта кривая, имеющая колоколообразный вид, обычно достаточно
хорошо описывает форму реальных пиков поглощения, если частица поглощает
лишь в одной узкой области. В более сложных случаях можно попытаться
представить кривую поглощения частицы в виде суммы нескольких гауссиан.
Настоящее дополнение посвящено решению именно этой задачи.

Программа OptimS после своего запуска всегда находится в режиме работы,
называемым "Normal", и именно работе в этом режиме были посвящены все
предыдущие разделы данного руководства. Описываемое в данном разделе
дополнение посвящено описанию работы в альтернативном режиме, который
называется "Gaussians", и который должен быть явно установлен
пользователем, если он желает получить гладкие кривые поглощения.

В обзорной работе [3] (Antonov L. and Nedeltcheva D. Resolution of
overlapping UV-Vis absorption bands and quantitative analysis (2000) /
Chem. Soc. Rev., vol. 29, pp. 217-227) достаточно подробно описаны
проблемы, возникающие при использовании гауссиан для описания кривых
поглощения. В дальнейшем мы будем ссылаться на эту работу для подтверждения
своих рекомендаций.
Первым и самым важным шагом является выбор набора гауссиан (точнее, их
числа) для описания свойств каждой из поглощающей частиц. Этот шаг важен
потому, что при неверном выборе числа этих кривых итерационный процесс их
уточнения либо будет сходиться к неверному решению, либо будет сходится
крайне медленно, либо (что наиболее вероятно) не будет сходиться вообще
[3]. Следовательно, принимать решение об использовании гауссиан для
интерпретации спектров поглощения имеет смысл лишь тогда, когда эта задача
уже решена, то есть вид кривых поглощения для всех частиц известен. Другими
словами, следует сначала решить основную задачу и лишь затем (если это
решение достаточно хорошее) окончательно пригладить его гауссианами. Для
того, чтобы пользователь не забывал, что в режим Gaussians переходят только
в конце работы, в программе OptimS этот переход может быть сделан с помощью
последней из функциональных клавиш - клавиши F12. Перед выходом из
нормального режима рекомендуется скопировать столбец Result, содержащий
«нормальное» решение задачи, в столбец Initial для того, чтобы в
последующем начинать итерации с уже оптимизированных значений энергий -
процесс уточнения параметров гауссиан требует хороших начальных приближений
[3].

Как всегда, нажимать клавишу F12 можно тогда, когда программа OptimS не
занята выполнением другого задания. После нажатия этой клавиши на экране
появляется диалог "Fitting Mode". Размер и содержание этого диалога зависит
от текущего режима работы программы OptimS. В нормальном режиме диалог не
содержит ничего, кроме кнопок выбора (переключателя) режимов. При переводе
программы в режим Gaussians (щелчком на соответствующей кнопке или просто
клавишей «вниз») диалог расширяется, и в нем появляются дополнительные
элементы управления, специфичные для этого режима. Ниже приведены краткие
описания этих элементов управления.

Кнопки выбора ".as functions of" позволяют выбрать независимый аргумент
для гауссиан. Вы можете выбрать либо частоту света (wavenumber), либо длину
волны (wavelength). Несмотря на то, что программа OptimS предназначена для
обработки спектров, представленных как функции длины волны, по умолчанию в
качестве независимой переменной в гауссианах предлагается частота. Этот
выбор сделан в связи с тем, что именно частота света является
«естественной» переменной в теоретических обоснованиях спектрального
анализа. На практике применяют оба типа аргумента [3], и Вы можете выбрать
его по своему вкусу. Разница между этими двумя вариантами гауссиан
невелика, если полоса поглощения узкая и полностью расположена внутри
спектрального диапазона. Однако, если полоса поглощения широкая, эта
разница может стать заметной; если же полоса поглощения еще и выходит за
пределы обрабатываемого диапазона частот (длин волн), выбора типа аргумента
для гауссиан может оказаться критическим. Однако Вы всегда можете
поэкспериментировать с этим переключателем перед тем, как сделать
окончательный выбор.

Графическое окно при первоначальном вызове диалога содержит только
графики коэффициентов экстинкции (отдельно для каждой частицы), полученные
«нормально» по текущим значениям свободных энергий частиц - это именно те
кривые (показаны синим цветом), которые Вы будете пытаться сгладить с
помощью гауссиан. В дальнейшем в этом же окне будут представлены и графики,
построенные с помощью гауссиан (красным цветом). При хорошей аппроксимации
эти две кривые должны быть близки, а при идеальной - совпадать.

Выпадающий список позволяет выводить в графическое окно данные по
нужной поглощающей частице. Перемещаться по списку можно также с помощью
клавиш «вверх» и «вниз».

Флажок "Logarithmic scale": если установлен, изменяет вертикальный
масштаб графиков на логарифмический. Чтобы вернуться к натуральному
масштабу, достаточно сбросить этот флажок.

Кнопка "Load" предназначена для чтения параметров гауссиан с рабочего
листа. Она может Вам понадобиться, если Вы вводите эти параметры вручную
(на рабочий лист) или вручную изменяете их текущие значения.

Кнопка "Build" позволяет автоматически построить набор гауссиан,
описывающих текущие «нормальные» значения коэффициентов экстинкции. При
нажатии этой кнопки строятся гауссианы для всех поглощающих частиц (а не
только для той, которая в данный момент представлена в графическом окне).
Полученные значения не являются решением задачи, а представляют собой лишь
начальные приближения, которые подлежат дальнейшей оптимизации. Результаты
записываются на рабочий лист, при этом предыдущие параметры гауссиан с
рабочего листа стираются (если они там были).

Текстовое поле "Threshold" содержит число, являющееся параметром
алгоритма построения набора гауссиан. Стандартное значение - 33%. Вы можете
изменить этот параметр перед нажатием кнопки Build, если требуется (если
после ввода значения в это поле Вы нажали клавишу Enter, команда Build
будет выполнена автоматически).




Первоначальная оценка гауссиан

Когда Вы в первый раз вошли в режим Gaussians, на графиках можно
увидеть только «нормальные» кривые коэффициентов экстинкции, то есть
никаких гауссиан пока нет, их еще только требуется построить. Получение
хорошего набора гауссиан, решающих основную задачу - оптимальное описание
спектров - весьма сложный процесс, поэтому на данном этапе речь может идти
только о построении их начальных приближений. Наиболее простым решением
этой задачи будет, по-видимому, попытка аппроксимировать гауссианами
имеющиеся кривые поглощения отдельными частицами. Это можно сделать как
вручную, так и с помощью программы OptimS.

Самое простое, что можно сделать в этой ситуации - это нажать кнопку
Build. Если команда выполнена успешно, на графике появляется
аппроксимирующая кривая красного цвета, а на рабочем листе - дополнительная
таблица с параметрами гауссиан. Эта таблица начинается с ячейки G9, которая
содержит буквы wN или wL - сокращенное обозначение текущего типа аргумента
(wavenumber или wavelength соответственно). Каждая строка этой таблицы
относится к поглощающей частице, указанной в начале строки (столбец B). В
первом столбце (G) таблицы указано количество гауссиан, которое
представлено в данной строке. Каждая гауссиана описывается тремя
параметрами: "center" - координатой центра (максимального значения, или
пика) гауссианы, "width" - шириной гауссианы на половине ее высоты и "max"
- значением гауссианы в точке максимума. Параметры center и width всегда
указаны в нанометрах независимо от того, каков тип аргумента у гауссиан.
Это сделано для удобства визуальной интерпретации пиков, так как все
графики в программе OptimS всегда строятся в этих координатах. Таким
образом, строки таблицы параметров гауссиан имеют различную длину,
зависящую от числа полос поглощения каждой частицы.

Первое, что нужно сделать, получив эту таблицу - это убедиться в том,
что число гауссиан выбрано программой верно для каждой частицы (сравните
эти данные с графиками коэффициентов экстинкции!). Если есть основания
предполагать, что какой-то из пиков поглощения является мнимым (случайным),
его лучше удалить, так как избыток гауссиан - большее зло, чем их
недостаток [3]. Удалить лишние гауссианы можно с помощью той же команды
Build, предварительно увеличив значение параметра Threshold. При уменьшении
Threshold, наоборот, количество построенных программой гауссиан растет.
Этот параметр регулирует «чувствительность» алгоритма к пикам, оставшимся в
спектре после учета предыдущих. В частности, при Threshold = 100% программа
всегда выдает ровно одну гауссиану на частицу.

Существует и другой способ удаления лишней гауссианы, который может
оказаться удобней - удаление ее параметров из таблицы вручную
непосредственно на рабочем листе. Для этого надо выделить три ячейки с
параметрами гауссианы, нажать правую кнопку мыши и выбрать из контекстного
меню Delete. (Удалить.). При удалении надо использовать режим сдвига ячеек
влево (Shift cells left), чтобы не испортить остальные параметры. Затем
надо уменьшить на 1 количество гауссиан в столбце G. Для того, чтобы это
изменение вступило в силу, в диалоге Fitting Mode программы OptimS надо
нажать кнопку Load - измененные параметры будут прочитаны с рабочего листа
и графики будут перестроены в соответствии с новыми данными.

Аналогичным образом можно вручную добавлять гауссианы к таблице (не
забывая при этом увеличивать их число в столбце G!). Так же можно вручную
изменять значение любого из параметров уже имеющихся гауссиан, добиваясь их
лучшего соответствия коэффициентам экстинкции. Необходимо лишь помнить, что
любое изменение данных в таблице на рабочем листе отразится на графиках
только после нажатия кнопки Load.

Если гауссианы, полученные любым из описанных способов, Вас
удовлетворяют, для окончательного согласования красных и синих кривых можно
попробовать еще одно средство: сделать двойной щелчок мышью прямо на
графике. Эта операция окончательно уточнит аппроксимацию (если не возникнет
ошибок), а измененные параметры гауссиан будут перенесены в таблицу на
рабочем листе. Обратите внимание: последняя операция окончательного
уточнения гауссиан выполняется только для текущей частицы! Если Вы хотите
сделать это и для других частиц, операцию нужно выполнить для каждой из
них.

Когда все начальные приближения для гауссиан готовы, можно закрыть
диалог (как обычно, кнопкой Close или клавишами Alt+F4) и вернуться к
главному окну программы OptimS. Теперь рабочий лист отличается от исходного
состояния тем, что на нем имеется таблица параметров гауссиан. Однако ее
наличие еще ничего не говорит о том, каков текущий режим программы OptimS:
эта таблица расположена в свободной части листа, которая в нормальном
режиме никак не влияет на работу программы. Режим, в котором находится
программа, зависит от состояния переключателя режимов в диалоге "Fitting
Mode" перед его закрытием. Определить текущий режим программы просто:
посмотрите на кнопку Goal function. Если она активна, программа находится в
нормальном режиме, если же нет (и имеет надпись "Gaussian mode!") - в
режиме Gaussians.



Оптимизация гауссиан

Функции командных кнопок главного окна программы OptimS, в основном,
сохраняются и в режиме Gaussians, за исключением, как уже указывалось,
кнопки Goal function (эта функция в данном режиме не выполняется из-за
слишком большого объема необходимых вычислений). Однако в выполнении этих
команд (кроме команды Speciation - по понятным причинам) имеются и
небольшие различия.

По команде Refresh программа в этом режиме считывает с рабочего листа,
помимо прочих данных, и таблицу параметров гауссиан. Затем, как обычно,
вычисляется значение исходной ошибки для начальных значений свободных
энергий поглощающих частиц, однако эти вычисления выполняются уже с
использованием гауссиан, а не путем расчета коэффициентов экстинкции.
Естественно, величина суммарной ошибки в этом случае оказывается несколько
больше, чем в нормальном режиме.

Команды Extinction coefficients и Absorption также используют не
значения ?ik, рассчитываемые по методу наименьших квадратов, а текущие
параметры гауссиан. Поскольку начальные приближения для гауссиан получены
аппроксимацией уже оптимизированных значений коэффициентов экстинкции, из
рассмотрения графиков может сложиться впечатление, что задача уже решена:
коэффициенты описываются гладкими кривыми при хорошем согласии измеренных и
расчетных спектров поглощения. Однако это не так - оптимизация свободных
энергий и оптимизация параметров гауссиан должны выполняться одновременно.

Для решения этой главной задачи следует должным образом подготовить
столбец Result (очистить/заполнить нужные ячейки) и нажать кнопку Optimize,
запускающую итерационный процесс уточнения энергий частиц и параметров
гауссиан. Если этот процесс завершится успешно (сойдется) и будут вычислены
доверительные интервалы для оптимизированных энергий, Вы сможете, вероятнее
всего, заметить следующее. Несмотря на то, что величина S2 (сумма квадратов
отклонений рассчитанных величин поглощения от измеренных) возросла,
полученное значение целевой функции s (среднеквадратическая ошибка)
оказалась меньше, чем в нормальном режиме. Это объясняется тем, что в
режиме Gaussians число варьируемых параметров равно 3ћng (где ng - число
гауссиан), а в нормальном режиме оно равно nwћnc, то есть на порядки
больше. В соответствии с правилами оценки среднеквадратической погрешности,
для режима Gaussians [pic], что и объясняет это явление. По той же причине
становятся меньше и доверительные интервалы для оптимизированных свободных
энергий. Это обстоятельство может явиться для Вас дополнительным аргументом
в пользу применения гауссиан для интерпретации спектров поглощения.




Проблемы сходимости

Зависимость целевой функции от энергий оптимизируемых частиц и
параметров гауссиан существенно нелинейна, поэтому процесс их уточнения
весьма сложен и не всегда обладает достаточно хорошими свойствами
сходимости. Общее правило таково: сходимость процесса оптимизации тем
лучше, чем ближе формы графиков «нормальных» коэффициентов экстинкции к
гауссианам. Одним из способов улучшения сходимости, таким образом, является
подходящий выбор аргумента для гауссиан. Этот выбор иногда можно сделать и
визуально: попробуйте в диалоге "Fitting Mode" переключать тип аргумента
при уже построенных гауссианах - Вы увидите, как изменяется форма этих
кривых при изменении типа аргумента. Это изменение незначительно, если пик
узкий и не выходит за пределы графика. Однако, если указанные условия не
выполняются хотя бы для одной из гауссиан, изменение типа аргумента может
весьма существенно деформировать всю кривую. Это связано с тем, что частота
и длина волны связаны обратно пропорциональной зависимостью; следовательно,
при стремлении одной из этих величин к нулю другая стремится к
бесконечности, и наоборот. Сильное изменение формы кривой при переключении
типа аргумента говорит о том, что данная кривая содержит гауссиану с
экстремальными параметрами. Проверьте это и, если надо, перестройте
гауссианы заново для нового типа аргумента.

Одной из серьезных проблем, возникающих при интерпретации спектров
поглощения, является проблема «граничных значений», когда величина
поглощения монотонно возрастает вплоть до границы анализируемого диапазона
частот [3]. В этом случае соответствующая гауссиана становится полностью
неопределенной, так как по таким данным нельзя получить ни координату ее
центра, ни ширину, ни максимальное значение. В программе OptimS этот случай
обрабатывается путем задания «фиктивной» гауссианы, то есть расположенной в
основном за пределами спектра. Параметры этой гауссианы, естественно, не
могут быть определены с такой же точностью, с какой определяются параметры
«явной» гауссианы, однако этого и не требуется, так как целью расчетов
является не определение параметров полос поглощения, а лишь аппроксимация
имеющихся данных. Единственный недостаток этого подхода заключается в том,
что оценка параметров гауссианы лишь по части одного «склона» может дать
физически бессмысленные значения (например, нулевую или даже отрицательную
длину волны в качестве координаты ее центра). Это, в свою очередь, может
привести к вычислительным сбоям при преобразованиях координат (аргумента) и
т. п.

Для предотвращения подобных ситуаций в программу OptimS встроено
следующее ограничение: допустимым диапазоном длин волн считается интервал
от 122 до 380 нм; соответствующие этим же точкам частоты ограничивают
значения аргумента типа wavenumber. Если в процессе итераций координата
центра какой-либо гауссианы достигает предельно допустимого значения,
процесс оптимизации прекращается с выдачей соответствующего сообщения. В
случае возникновения такой ситуации, лучше всего попытаться заново решить
задачу, попробовав использовать другое начальное приближение, в том числе -
и особенно - для проблемной гауссианы. Если эта мера не помогает, то есть
решение постоянно упирается в границу допустимой области, можно применить
последнее средство: жестко зафиксировать какой-либо из параметров этой
гауссианы (например, координату ее центра).

Программа OptimS позволяет зафиксировать любой параметр любой
гауссианы. Это делается достаточно просто. Выберите параметр в таблице и
введите в ячейку желаемое значение (если требуется). Затем, щелкнув на этой
ячейке правой кнопкой мыши, выберите в контекстном меню команду "Insert
Comment" ("Вставить комментарий"). Текст в комментарий вводить не
обязательно - программа все равно не будет его читать, ей важно только
наличие комментария. По появившейся красной метке в правом верхнем углу
ячейки Вы всегда будете видеть, что этот параметр зафиксирован. Теперь
можно снова запустить оптимизацию и посмотреть, что из этого вышло.

Решив задачу с зафиксированными параметрами гауссиан, Вы можете
обнаружить, что доверительные интервалы для свободных энергий уменьшились.
Это произошло из-за того, что уменьшилось число варьируемых параметров при
оптимизации. Однако к этому факту нужно отнестись скептически: в этих
параметрах зафиксированы оптимальные значения, следовательно, уменьшение
доверительных интервалов мнимое.




Если необходимо сослаться на эту программу, можно воспользоваться ссылкой
[4].








Литература



1. Malinowski E. R. Determination of the number of factors and the
experimental error in the data matrix (1977) / Anal. Chem., vol. 48, No.
4, pp. 612-617.

2. Boily J.-F. and Seward T. M. Palladium(II) chloride complexation:
Spectrophotometric investigation in aqueous solutions from 5 to 125њC and
theoretical insight into Pd-Cl and Pd-OH2 interactions (2005) / Geochim.
Cosmochim. Acta, vol. 69, No. 15, pp. 3773-3789.

3. Antonov L. and Nedeltcheva D. Resolution of overlapping UV-Vis
absorption bands and quantitative analysis (2000) / Chem. Soc. Rev., vol.
29, pp. 217-227.

4. Shvarov Yu. V. A suite of programs, OptimA, OptimB, OptimC, and OptimS
compatible with the Unitherm database, for deriving the thermodynamic
properties of aqueous species from solubility, potentiometry and
spectroscopy measurements (2015) / Applied Geochemistry, vol. 55, pp. 17-
27.













Приложение 1. Сообщения об ошибках

|Сообщение об ошибке |Комментарий |
|Ошибки, возникающие при чтении файла данных |
|Check number of |Число в ячейке B9 не равно числу частиц на |
|species! |рабочем листе. Исправьте ошибку |
|Composition value is |Обнаружено отрицательное количество вещества, |
|invalid |задающего состав раствора. Исправьте ошибку |
|Could not calculate |Ошибка вычисления начальной энергии частицы. |
|initial energy |Проверьте T-P условия или задайте значение в |
| |Initial явно |
|Could not calculate |Ошибка при вычислении целевой функции в начальной|
|initial error |точке. В нормальном режиме маловероятна. Поищите |
| |грубую ошибку в файле данных. Если ошибка |
| |возникла в режиме Gaussians, измените начальное |
| |приближение |
|Could not open the file|При попытке открыть входной файл произошла |
| |ошибка. Проверьте, не занят ли файл другим |
| |процессом |
|Could not run Excel |Проверьте, установлена ли в системе программа |
| |Excel версии 97 или выше |
|Could not set Gibbs |Проверьте, правильно ли в файле данных заданы |
|options |опции для программы Gibbs |
|Data row is too long |Длина строки в таблице составов или величин |
| |поглощений больше, чем число растворов. Очистите|
| |указанную ячейку или (в таблице составов) |
| |занесите в нее слово "corrected" |
|Data row is too short |В таблице составов растворов встретилась пустая |
| |ячейка. Исправьте ошибку (если компонент |
| |отсутствует в растворе, требуется явно указывать |
| |0) |
|Duplicated species |Одна и та же частица указана дважды в списке |
|found |поглощающих частиц. Исправьте ошибку |
|Error opening database |Правильно ли в файле данных указан путь к базе |
| |данных? |
| |Не занята ли база данных другим процессом? |
|Error opening System |Правильно ли в файле данных указан путь файлу |
|file |System? |
| |Не занят ли этот файл другим процессом? |
|File not open |Это сообщение обычно выдается после другого |
| |сообщения об ошибке. Исправьте ошибку и нажмите |
| |Open снова |
|Incorrect file type |Файл исходных данных не является рабочей книгой |
| |Excel. Подготовьте правильный файл |
|Incorrect keyword |Ключевое слово отсутствует или написано |
| |неправильно. Проверьте правильность написания |
| |ключевых слов, используя в качестве образца файл |
| |OptS_ex.xls |
|Incorrect number of |Количество поглощающих частиц меньше 1 или больше|
|species |8 |
|Invalid formula of a |Обнаружена ошибка в химической формуле вещества, |
|substance |задающего состав водного раствора. Исправьте |
| |формулу |
|No aqueous solution in |Файл System не содержит водного раствора. Что Вы |
|System file |хотите оптимизировать? |
|No mandatory data |Отсутствуют обязательные данные (ячейка пуста). |
| |Занесите данные в указанную ячейку |
|Solution must have name|Основная таблица данных должна содержать графы, |
| |заголовками которых являются названия растворов |
|Species is not an |Среди поглощающих частиц найдена не водная |
|aqueous |частица. Исключите ее из файла данных |
|Species not found in |Поглощающей частицы нет в файле System. |
|System file |Возможно, Вы указали не тот System файл |
|Species not found in |Частица не найдена в базе данных. |
|the database |Возможно, вы указали не ту базу данных |
|System file contains |Текущая версия программы OptimS не поддерживает |
|p.m.c. |системы с вполне подвижными компонентами |
|System file not found |System файл не найден в указанной директории. |
| |Проверьте правильность написания имени файла, |
| |включая путь |
|T/P/D out of range |Температура, давление или плотность воды имеет |
| |значение, выходящее за пределы приложимости |
| |модели HKF. Исправьте ошибочный параметр (если |
| |это ошибка) или добавьте опцию /ie (на свой страх|
| |и риск) |
|Wavelengths must be |Встретилась нулевая или отрицательная длина волны|
|positive | |
|Wavelengths must grow |Длины волн в основной таблице должны идти в |
| |возрастающем порядке |
|wl_stop must be greater|При указании рабочего диапазона длин волн нижняя |
|than wl_start |граница должна быть меньше верхней |
|Unexpected error (short|Похоже, что файл не содержит всех необходимых |
|file?) |данных. Проверьте исходный файл |
|Ошибки, возникающие при расчетах |
|Could not invert |Гессиан целевой функции вырожден. Попробуйте |
|Hessian |изменить модель или сократить число |
| |оптимизируемых частиц |
|Could not estimate |Программа не может оценить дисперсии ошибок |
|intervals |определения параметров из-за малой изменчивости |
| |целевой функции. Возможно, частицы выбраны |
| |неудачно |
|Too high correlation. |Частицы в растворах сильно коррелированны. Можно |
|Reduce accuracy? |попытаться продолжить расчет, уменьшив точность |
|Cannot refine |С данным набором гауссиан, похоже, ничего не |
|Gaussians. Try another |выйдет. Попробуйте другой набор гауссиан (или их |
|set |аргумент) |
|Cannot calculate goal |Ошибка при вычислении целевой функции. Если у Вас|
|function: . |нет идеи, почему это могло случиться, сообщите об|
| |этом мне |
|Optimization failed: . |Ошибка при оптимизации. Если у Вас нет идеи, |
| |почему это могло случиться, сообщите об этом мне |
|No gradient |Ошибка при попытке определить направление роста |
| |целевой функции. Неподходящий масштаб? |
|Cannot build Gaussians.|Ошибка при построении гауссиан. Возможно, Вы |
|Try to change threshold|задали слишком маленькое значение параметра |
| |Threshold |
|Could not build |Гауссианы не получились. Попробуйте вручную |
|Gaussians | |
|Error while refining |Попытка улучшить гауссианы неудачна. Постройте их|
|Gaussians. Rebuild them|заново |
|Gaussians not found |Нажата кнопка Load, а гауссиан на рабочем листе |
| |нет! |
|Gaussians not loaded |Ошибка при чтении гауссиан с рабочего листа. |
|due to errors |Проверьте, все ли параметры на месте и нет ли |
| |ошибок в столбце G |
|Error while evaluating |Что-то случилось с гауссианами. Проверьте |
|Gaussians. Check them |таблицу. Всё ли там нормально? Может быть, стоит |
| |что-то зафиксировать? |




Приложение 2. Контрольный пример

Файл OptS_ex.xls содержит пример подготовленных исходных данных для
программы OptimS. Не следует воспринимать данные, содержащиеся в этом
файле, как важные научные результаты. Вы можете использовать его как шаблон
при подготовке своих собственных экспериментальных данных, если хотите
обрабатывать их с помощью этой программы.

Однако возможно еще одно применение этого файла - как контрольного
примера, позволяющего Вам убедиться в том, что Ваш экземпляр программы
OptimS (и, кстати, пакета HCh) исправен, а Вы сами освоили все функции
программы, описанные в данном руководстве. В данном приложении приведены
результаты интерпретации данных, представленных в файле OptS_ex.xls,
которые должны получить и Вы, если ничего не измените ни в этом файле, ни в
стандартной базе данных Unitherm.

Прежде всего, создайте с помощью HCh следующий файл описания раствора:

======== C:\Tests\Pb-Cl.st
Pb-Cl complexes (Seward,1984)
Cl H Na O Pb z a
* * * Aqueous solution * * *
0. 0 2 0 1 0 0 0.00 H2O
1. 0 1 0 0 0 1 9.00 H+
2. 0 1 0 1 0 -1 3.50 OH-
3. 1 0 0 0 0 -1 3.00 Cl-
4. 1 1 0 0 0 0 0.00 HCl (aq)
5. 0 0 1 0 0 1 4.00 Na+
6. 0 1 1 1 0 0 0.00 NaOH (aq)
7. 1 0 1 0 0 0 0.00 NaCl (aq)
8. 0 0 0 0 1 2 4.50 Pb++
9. 0 1 0 1 1 1 4.50 PbOH+
10. 1 0 0 0 1 1 4.50 PbCl+
11. 2 0 0 0 1 0 0.00 PbCl2 (aq)
12. 3 0 0 0 1 -1 4.50 PbCl3-
13. 4 0 0 0 1 -2 4.50 PbCl4--
======== End of file
и запишите его в директорию C:\Tests. Вы можете, конечно, записать его и в
любое другое место на диске и под другим именем, но тогда Вам придется
откорректировать ячейку B3, указав в ней правильный путь и имя Вашего
файла.
Ниже приведена таблица результатов, полученных нами с помощью программы
OptimS и данных, представленных в файле OptS_ex. Примерно такие результаты
должны получить и Вы, если все сделаете так, как описано в этом
руководстве.

| |Normal mode |Gaussians, wL |Gaussians, wN |
|Species |Energy |± |Energy |± |Energy |± |
|PbCl+ |-163.125 |1.20 |-163.571 |0.49 |-163.446 |0.47 |
|PbCl2 |-301.664 |3.23 |-301.157 |0.93 |-300.898 |0.98 |
|(aq) | | | | | | |
|PbCl3- |-430.254 |4.88 |-430.330 |1.52 |-430.124 |1.50 |
|PbCl4- - |-559.270 |4.63 |-558.469 |1.35 |-558.108 |1.44 |
|Mean err.|0.0212 |0.0173 |0.0171 |

-----------------------
[1] Поле имени файла не предназначено для ввода полного пути к файлу, оно
должно содержать только имя файла (с расширением .xls). Рабочей директорией
считается та, в которой была закончена работа программы в предыдущей
сессии. Если пользователю необходимо сменить рабочую директорию, ему
следует воспользоваться стандартным диалогом открытия файла.