Суть метода решения задачи о распределении финансирования заключена в сведении ее к задаче нечеткого нелинейного программирования и применении для ее решения аппарата нечетких интегралов.
Для задачи выбора приоритетного ряда исследований предложен метод решения, сводящийся к обработке экспертных оценок методами теории нечеткой меры.
В основе же метода решения задачи об определении победителя конкурса лежит процедура нечеткой идентификации, сводящаяся в конечном итоге к решению задачи линейного программирования.
УДК 681.3
Е. Р. Алексеев, О. В. Чеснокова,
О. Ломовцева , М. Вавич
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ПАКЕТОВ MATHCAD, MATHEMATICA И MS EXCEL В ИНЖЕНЕРНОЙ ПРАКТИКЕ
На современном этапе развития компьютерной техники при решении инженерных задач пользователю приходится работать с различными прикладными программами. Для математической обработки данных современный инженер и научный работник часто пользуется возможностями пакетов MathCAD и Mathe-matica. Все эти три пакета разработаны разными производителями ПО, у них разный формат хранения данных и передача данных из одного пакета в другой представляет определённую проблему. Методам решения этой проблемы и посвящена данная статья. Одним из недостатков пакета MathCAD является недостаточно удобное хранение больших массивов информации (исходных данных). Большие массивы информации удобно хранить в рабочих листах MS Excel. Механизм передачи данных мы будем рассматривать на примере двух массивов Р0 и Ui и матрицы А, хранящихся в файле matr.xls (обязательно в первом листе). Массив Р0 хранится на первом листе, в ячейках А1:А30, массив U] - в ячейках СЗ:КЗ, матрица А хранится в ячейках С5:К29. MathCAD может считать эти данные следующим способом. Внедрить в MathCAD компонент MS Excel. Для этого выбрать в меню команду Вставка\Компонент и в открывшемся диалоговом окне выбрать Excel, затем щёлкнуть по кнопке Next, и в открывшемся диалоговом окне найти имя открываемого файла. В следующем диалоговом окне в ячейке Outputs указать количество данных, передаваемых из Excel в MathCAD (в нашем случае 3), а в ячейке Inputs - количество данных, передаваемых из MathCAD в Excel, и указать диапазоны MS Excel, где хранятся (или будут храниться) данные. В нашем случае окно примет вид рис. 1.
Excel Setup Wizard
т
input*
'ч .-V,.
• ü'. . ViV i.. j. fltyu*
1
I0 4
Input SlÄOngCeJ
3 ij
Ûuipu* Ranoe .
0 Al :A30
1 . СЭ:КЗ
2 C5:K2S[
<йазлд 1 Готово I Отмена
Рис, 1
Следовательно, первой переменной будет Р0, второй - Ub третьей -Л. Затем в листе MS Excel ввести имена переменных Р0, Ub Л. И в MathCAD мы увидим следующую конструкцию:
( РсЛ и,
Лист
Таким образом, мы передали значения из листа Excel в MathCAD в переменные РО, U1, Л. Если в листе MS Excel хранится только один массив данных, то можно воспользоваться компонентом File Read or Write в формате MS Excel. Пусть в первом рабочем листе файла U0.xls в ячейках А1:А18 хранятся значения U0. Передадим эти значения в MathCAD в качестве массива U0. Для этого выполним команду MathCAD Вставка\Компонент File Read or Write. В появившемся диалоговом окне выберем команду Read from a File (для записи в файл - Write to a File). В следующем окне выберем имя файла, из которого будем передавать данные и формат файла. После этого в MathCAD следует указать имя переменной -U0:
U0:=
D:\..\UO.xls
Ещё один способ передачи данных между MS Excel и MathCAD - использование текстовых файлов. Для передачи данных из MathCAD в MS Excel можно поступить следующим образом: записать массив (матрицу) в текстовый файл ко-
мандой WRITEPRN (или WRITE). Например, WRITEPRN("U00.txt"):=U0. Затем из MS Excel считать текстовый файл. Напомним, что в русской версии Windows по умолчанию разделителем между целой и дробной частью числа является запятая, а в MathCAD - точка. Чтобы избежать этого конфликта, установите разделителем между целой и дробной частью запятую. Для передачи данных из MS Excel в MathCAD нужно сохранить данные рабочего листа MS Excel в текстовом формате, а затем считать их из MathCAD функцией READPRN.
В процессе решения различных задач в области электротехники, теплотехники у нас возникла необходимость передавать данные между MathCAD, MS Excel и MathematicoH. Так как форматы данных и рабочих файлов MathCAD, MS Excel и Mathematica абсолютно разные, то самым простым и эффективным способом передачи данных является внешний текстовый файл. Для передачи данных в пакет Mathematica нужно сохранить файл MS Excel в текстовом формате или записать массив (или матрицу) MathCAD функцией WRITEPRN. Например, запишем в файл ехб матрицу В(3,5) командой MathCAD WRITEPRN("ex6"):=B. Затем стандартной командой Mathematica READLIST можно считать содержимое этого файла в список пакета Mathematica
ln[4j:=B=ReadList["ex6", {Number, Number, Number}] Out[4]={{l, 2, 3}, {4, 5, 6}, {7, 8, 9}, {1,2, 3}, {4, 5, 6}}
Более сложную задачу представляет передача данных (массивов, матриц) из пакета Mathematica в MathCAD, Excel. Дело в том, что при записи данных в файл Mathematica не создаёт чистый текстовый файл, а пишет в файл кроме числовых значений ряд своих символов (" и \п). Созданные Matematicofl файлы нельзя будет считать с помощью MathCAD и Excel. Наиболее приемлемый для дальнейшего чтения файл создаётся конструкцией, изображённой на рисунке.
1п[13]:=т={{1, 2, 3}, {4.5, 7.9,8.65}, {2.4, 8.9, 7.1}}
Out[13]= {{1,2,3}, {4.5,7.9,8.65}, {2.4, 8.9, 7.1}} ln[14]:=ToString[TableForm[m]j Out[14]= 1 2 З
4.5 7.9 8.65
2.4 8.9 7.1
ln[15]:=ml= ToString[TableForm[m, TableSpacing->{0,1}]]
Out[15]= 1 2 3
4.5 7.9 8.65
2.4 8.9 7.1
ln[16]:=ml»primer Этот документ создаёт следующий файл primer:
”1 2 3\n4.5 7.9 8.65\п2.4 8.9 7.1".'
Для преобразования подобных файлов нами была написана программа perevod (на языке Turbo Pascal), которая убирает из файла символы “ и \п и разделяет набор чисел на нужное количество строк.
После обработки этой программой файл primer примет вид 1 2 3
4.5 7.9 8.65
2.4 8.9 7.1
В пакете Mathematica существует возможность вызова внешней программы. Для этого служит команда !<имя_программы>. Следовательно, после записи файла с массивом (матрицей) на диск можно выполнить команду ¡perevod для преобразования выходного файла, созданного программой Mathematica. Теперь содержимое файла primer можно считать в MathCAD функцией READPRN или открыть средствами MS EXCEL.
УДК 681.3
Е. Р. Алексеев, О. В. Чеснокова,
JI. С. Сорокина, А. А. Тарасов
ОБ ОПЫТЕ ИСПОЛЬЗОВАНИЯ ПАКЕТА MATHCAD 2000 В ИНЖЕНЕРНЫХ РАСЧЁТАХ
Система MathCAD традиционно занимает особое место среди множества математических систем и по праву может называться одной из самых эффективных и универсальных. Она позволяет выполнять численные и аналитические вычисления, имеет чрезвычайно удобный математически ориентированный интерфейс и прекрасные средства графики. MathCAD - это мощный математический инструмент для пользователей, работающих в области техники или естественных наук. В предлагаемой работе на нескольких примерах демонстрируются богатые возможности MathCAD, позволяющие осуществлять решение распространенных и довольно сложных инженерных задач.
Довольно часто в инженерной практике встречаются задачи решения нелинейных уравнений и систем. Для простейших уравнений вида F(x)=0 решение находится с помощью функции root(F(x),x,a,b), а, Ь - необязательные параметры, определяющие интервал изоляции корня. Возможность указания интервала изоляции в функции root появилась в MathCAD 2000. Эта функция возвращает значение с точностью TOL (TOL - константа MathCAD, определяющая точность решения). Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной.
При решении задачи расчёта охлаждения неограниченной пластины необходимо было найти корни уравнения ctg(x)=x/Bi (Bi - константа). Известно, что
корни находятся на интервалах [(i-l)n; in/2], i=l,2,_Решение этого нелинейного
уравнения с помощью функции root приведено на рис. 1.