Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МЕТОДИЧКА ПО MAPLE и MATHCAD

.pdf
Скачиваний:
342
Добавлен:
10.05.2015
Размер:
8.75 Mб
Скачать

91

Графическое представление элементов матрицы

> with(linalg): with(plots): n:=10:

f:=(i,j)->`if`(sqrt((i-n/2)^2.+(j-n/2)^2.)=0,1.,sin(1*sqrt((i-n/2)^2.+(j- n/2)^2.))/sqrt((i-n/2)^2.+(j-n/2)^2.)):

L:=Matrix(n,f): matrix-

plot(L,axes=boxed,heights=histogram,labels=["строки","столбцы","

амплиту-

да"],labeldirections=[HORIZONTAL,HORIZONTAL,VERTICAL],li ghtmodel=light2,orientation=[45,45],projection=ORTHOGONAL,sha ding=XYZ,style= PATCHNOGRID);

Анимация 2D графиков

>with(plots,animate,display):

>a:=plots[animate](sin(i*x)/(i*x),x=-

Pi..Pi,i=1..10,frames=100,numpoints=100): b:=plots[animate](sin(x*i),x=- Pi..Pi,i=1..10,frames=100,numpoints=100):

92

plots[display]({a,b});

После щелчка левой кнопкой мышки по полю графика в верхней части панели появятся кнопку управления анимацией

Меню Style, Legend, Axes, Projection, Export аналогичны соот-

ветствующим меню графика одной переменной. Новым здесь является ставшее активным меню Animation,

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

Анимация 3D - графиков

> with(plots):

93

> f := (x,y) -> 4*(sin(x/2)+sin(y/4))+3*sin(x/2):

animate3d(f(x*t,y*t), x=0..20, y=0..20,t=1..2, style= PATCHNOGRID, color=sin(x*y),frames=200);

После щелчка левой кнопкой мышки по полю графика в верхней части панели появятся кнопку управления анимацией.

Меню Style, Legend, Axes, Projection, Export аналогичны соответст-

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

Запись и считывание данных

Обмен информацией между Maple и внешней средой чаще всего осуществляется через файлы текстового формата, поскольку именно с такими файлами могут работать практически все программы. Для записи данных в файл служит оператор writedata:

writedata[APPEND](fileID, data) writedata[APPEND](fileID, data, format) writedata[APPEND](filelD, data, format, default)

где filelD — имя или дескриптор файла данных, data — список, вектор или матрица данных, format — спецификация формата данных

(integer, float или string), default — процедура, задающая запись нечи-

словых данных, например:

94

writedata(F.A.float.proc(f.x) fprintf(f/CMPLX(%g,%g)’,Re(x).Im(x)) end):

Необязательный указатель APPEND используется, если данные должны дописываться в уже созданный файл. Считывание из файла filename обеспечивает функция readdata:

readdata(filelID, n) readdata(fileID, format, n) readdata(fileID, format)

где n — целое положительное число, задающее число считываемых столбцов. Ниже представлены примеры этих операций:

>

 

 

1.5

2.2

3.4

2.7

3.4

5.6

1.8

3.1

6.7

>

 

 

1

2

3

2

3

5

1

3

6

> >

Error, (in writedata) Bad data found x

>

x

1

3.4

2

5.3

y

1

5.6

2

4.5

>

95

> >

>

>

Maple имеет также типичные файловые операции: writeto запись в файл; appendto добавление к файлу; open открытие файла; closeзакрытие файла; write запись в открытый файл; save запись выражений в файл; read считывание из файла. Однако их реализация, однако, зависит от платформы, на которой установлена система, и от ее настройки.

Сохранение графиков в файле

Для сохранения графика в файле щелкните по полю графика правой кнопкой мышки и в открывшемся контекстном меню нажмите пункт Export и во втором открывшемся окне выберите расширение, с которым будет сохранен файл.

В открывшемся окне укажите папку и имя, под которым будет сохра-

96

нен файл.

Приложение

Примеры программ на языке Maple

Программа обращения матрицы методом оконтуривания

>with(linalg):

>m:=6:

>h:=0.1:

>f:=(i,j)->h*i^(j-1):

>M:=Matrix(m,f):

>OBR_MATR_OK:=proc(M) local A,a,b,c,d,h,i,m; m:=rowdim(M); A:=1/M[1,1]:

for i from 1 to m-1 do b:=M[1..i,i+1..i+1]; c:=M[i+1..i+1,1..i]; d:=M[i+1..i+1,i+1..i+1]; h:=det(d-c.A.b);

a:=stackmatrix(Matrix([A+A.(b.c).A/h,-A.b/h]),Matrix([-c.A/h,1/h])): A:=Matrix(a):

end do; end proc:

>H:=OBR_MATR_OK(M):

>printf("% 1.2e",Matrix(H));

6.00e+001 -1.50e+002 2.00e+002 -1.50e+002 6.00e+001 -1.00e+001 -8.70e+001 2.92e+002 -4.23e+002 3.30e+002 -1.35e+002 2.28e+001

97

4.83e+001 -1.92e+002 3.10e+002 -2.56e+002 1.08e+002 -1.87e+001 -1.29e+001 5.71e+001 -1.01e+002 8.92e+001 -3.96e+001 7.08e+000 1.67e+000 -7.92e+000 1.50e+001 -1.42e+001 6.67e+000 -1.25e+000 -8.33e-002 4.17e-001 -8.33e-001 8.33e-001 -4.17e-001 8.33e-002

Проверка

> printf("% 1.2e",Matrix(H.M));

1.00e+000 -3.75e-012 -1.06e-011 -3.33e-011 -1.30e-010 -6.64e-011 2.67e-012 1.00e+000 2.71e-011 8.55e-011 3.33e-010 4.22e-010 -2.09e-012 -7.04e-012 1.00e+000 -6.05e-011 -2.21e-010 1.53e-010 7.52e-013 2.62e-012 7.46e-012 1.00e+000 9.49e-011 6.37e-012 -1.46e-013 -4.94e-013 -1.38e-012 -4.36e-012 1.00e+000 6.82e-013 1.02e-014 3.44e-014 9.64e-014 3.06e-013 1.13e-012 1.00e+000

Программа решения системы линейных алгебраических уравнений методом сопряженных направлений

>with(LinearAlgebra):

>err:=10^(-8):

>SOPR_NAPR:=proc(M,Y,err) local k,m,x,X,p,mu,lambda,epsilon; m:=RowDimension(M); x:=(i)->`if`(i=1,i,0): X:=Vector(m,x); epsilon:=M.X-Y;

p:=epsilon;

k:=0;

while k<m+40 do lambda:=DotProduct(epsilon,p)/DotProduct((M.p),p); X:=X-lambda*p;

epsilon:=epsilon-lambda*(M.p); mu:=DotProduct((M.epsilon),p)/DotProduct((M.p),p); p:=epsilon+mu*p;

k:=k+1; end do; return(evalf(X)); end proc:

>H:=SOPR_NAPR(W,Y,err);

98

MATHCAD

Введение

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

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

К сожалению Mathcad даже в своих последних версиях не предназначен и для программирования сложных задач для этих целей следует использовать пакет Mathlab, или языки программирования Pascal и С++. Mathcad (матричный калькулятор) предназначен для решения каждодневно встречающихся инженерных задач: решение алгебраических или дифференциальных уравнений с постоянными и переменными параметрами; анализ функций, поиск их экстремумов; численное и аналитическое дифференцирование и интегрирование; вывод таблиц и графиков при анализе найденных решений.

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

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

4 В 2006 году фирма РТС приобрела фирму Mathsoft

99

Интерфейс пользователя

После включения Mathcad, откроется основное окно пакета, показанное ниже.

Оно имеет структуру аналогичную большинству приложений Win - dows. В верхней части окна располагаются заголовок, строка меню, панели инструментов (стандартная и форматирования) и рабочая область документа (worksheet). Новый документ создается автоматически при запуске Mathcad. В самой нижней части окна находится строка состояния. Таким образом, интерфейс пользователя Mathcad сходен с другими приложениями Windows, и, помня о близости редактора Mathcad к обычным текстовым редакторам, вы интуитивно поймете назначение большинства кнопок на панелях инструментов5. Кроме средств управления, типичного текстового редактора, Mathcad имеет дополнительные средства для ввода и редактирования математиче-

5 В версии Mathcad начиная с 13 разработчики предусмотрели специальную область окна, называемую Trace Window (Окно отладки), а также дополнительную панель инструментов Debug (Отладка)

100

ских символов, одним из которых является палитра инструментов Math (Математика)

с её помощью, можно открыть ряда дополнительных панелей, которые позволяю осуществить ввод уравнений.

Перечислим составные элементы интерфейса пользователя Math-

cad.

Верхнее меню или строка меню (menu bar) содержит следующие разделы:

File (Файл) команды, связанные с созданием, открытием, сохранением, пересылкой по электронной почте и печатью на принтере файлов с документами.

Edit (Правка) команды, относящиеся к правке текста (копирование, вставка, удаление фрагментов и т. д.).

View (Вид) команды, управляющие внешним видом документа

врабочем окне Mathcad, а также команды создания файлов анимации.

Insert (Вставка) команды вставки различных объектов в документ.

Format (Формат) команды форматирования текста, формул и графиков.

Tools (Инструменты) команды управления вычислительным процессом.

Symbolics (Символьные вычисления) команды символьных вычислений.

Window (Окно) команды, позволяющие управлять расположением окон с различными документами на экране.

Help (Помощь) команды вызова справочной информации. Щелчок мышью на пункте подменю вызывает появление соответствующего диалогового окна.

Панели инструментов Панели инструментов служат для быстрого (в один щелчок мы-