MathCAD

       

Оптимизация Mathcad-программ


Программист, написав и отладив программу, как правило, на этом не успокаивается и начинает ее улучшать – оптимизировать. Таким программистам можно посоветовать повесить на стене перед глазами такой листочек:

«За все нужно платить!»

 

«Лучшее ¾ враг хорошего!»

«Не до жиру, быть бы живу!»

Далее в тексте читатель будет встречать подобные тривиальные истины, некоторые из них он может также вывешивать в виде плаката[89].

Поговорим о том, что можно улучшить в программах – хотя бы в тех, которые помещены в этой книге.

Программы можно оптимизировать по разным параметрам. Вот три основополагающих:

  • Время выполнения программы;
  • Объем программы: место, занимаемое ею в ОЗУ компьютера, длина файла с исходным текстом программы, хранимого в архивной памяти.
  • Читабельность программы; степень ее открытости для изучения другими людьми и для доработки самим автором или кем-то другим.
  • Последнее качество в отличие от двух первых не так просто выразить числом, на которое можно целенаправленно влиять. Но мы уже рассмотрели понятие удобное

    пожарное ведро и знаем, как нечеткие

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

    Все три вышеотмеченные качества взаимосвязаны. Только в очень неряшливо написанной программе все параметры можно улучшить. Обычно же бывает так, что, улучшая читабельность программы человеком, мы ухудшаем ее «читабельность» компьютером: комментарии в программе (в нашем случае – текстовые константы) не только увеличивают объем программы, но и замедляют ее прогонку.

    Вот другой пример. Если в программе на рис. 4.10 (сплайн-интерполяция) исходные векторы и матрицы термодинамических параметров водяного пара переместить в файл на диске, а в программе оставить операторы его считывания (функция READ), то объем программы существенно уменьшится, но читабельность ее при этом ухудшится (самое интересное уйдет с экрана дисплея), а время ее выполнения изменится.


    Mathcad не имеет специализированных средств, предназначенных для оптимизации программ. В «настоящих» языках программирования, вернее, в «настоящих» средах создания программ они есть.
    Одно из них, называемое «profiler» (профайлер, профилировщик), позволяет провести некий хронометраж программы и выявить ее слабые места, нуждающееся в «укреплении» (в оптимизации).
    Итак, поговорим о том, как Mathcad-программы можно оптимизировать.
    1. Отлаживать
    программу можно только после ее написания, но оптимизировать программу не просто можно, но и нужно еще до открытия панели инструментов программирования (см. рис. 6.2). «Нет ничего практичнее хорошей теории!» – вот еще строка, заслуживающая быть плакатом (см. выше). Эта истина заставляет программиста искать для программы оптимальный алгоритм.
    Как можно найти корень алгебраического уравнения на отрезке неопределенности a-b? Во-первых, можно разбить интервал a-b на небольшие отрезки, равные TOL (предопределенная переменная Mathcad, отвечающая за точность расчетов), и зафиксировать место, где значения функции ближе всего к засечкам на оси х – см. рис. 6.54.

    Содержание раздела