Научная статья на тему 'Совместное использование пакетов MathCAD, Mathematica и MS Excel в инженерной практике'

Совместное использование пакетов MathCAD, Mathematica и MS Excel в инженерной практике Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
267
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Совместное использование пакетов MathCAD, Mathematica и MS Excel в инженерной практике»

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

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

В основе же метода решения задачи об определении победителя конкурса лежит процедура нечеткой идентификации, сводящаяся в конечном итоге к решению задачи линейного программирования.

УДК 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.

i Надоели баннеры? Вы всегда можете отключить рекламу.