Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочный материал по программе Maple.doc
Скачиваний:
32
Добавлен:
20.05.2014
Размер:
753.15 Кб
Скачать

Программирование

При составлении программ на языке MAPLE используются слова:

if– если,

then– тогда,

elif– если же,

else– в прочих случаях,

or– или (соответствует знаку объединения),

andи одновременно (соответствует знаку пересечения),

for n from 2 by 3 to 7 – дляп , меняющегося от 2 до 7 с шагом 3,

for n in A, B, Cдляп, принимающего значения А, В, С,

whileдо тех пор пока,

doвыполнять действие,

end if = fi , end do = odокончания программ.

1. Операторы условного перехода.

Пусть задано число

> x:=2.25;

Команда «Если x<1, то следует вычислить2х–3; в прочих случаях следует вычислитьи завершить команду» имеет вид

> if x<1 then 2*x-3 else sqrt(x) end if;

Сокращенная запись этой же команды имеет вид (if в обратных штрихах!!!)

> `if`(x<1,2*x-3,sqrt(x));

Команда с оператором условного перехода является ветвящейся

Возможны команды с несколькими условиями, например

«Если x<1, то следует вычислить 2х–3 ; в противном случае и при условии x<3 следует вычислить х2 ; в остальных случаях следует вычислить и завершить команду». Эта команда имеет вид

> if x<1 then 2*x-3 elif x<3 then x^2 else sqrt(x) end if;

Сокращенная запись этой же команды имеет вид

> `if`(x<1,2*x-3,`if`(x<3,x^2,sqrt(x)));

Эта команда имеет тройное ветвление

Ветвлений может быть сколько угодно. Пример

> if x<1 then 2*x-3 elif x<3 then x^2 elif x<5 then 1/x else sqrt(x) fi;

или в сокращенном виде

> `if`(x<1,2*x-3,`if`(x<3,x^2,`if`(x<5,1/x,sqrt(x))));

ПРИМЕЧАНИЕ. В ветвящихся программах MAPLE сравнивает два числа. Нужно иметь в виду, что сравнивать он «умеет» только десятичные числа или рациональные числа. Поэтому исходные данные должны иметь вид ln(2.0), sqrt(3.0), 2/3 и т.д.

Условие, стоящее после союза if, может состоять из нескольких составляющих, объединенных союзом or либо союзом and. Например

> a:=1.5;

> if a=2 or a<0 or a=1 then 1/a else 13 end if;

Или, в сокращенном виде

> `if`(a=2 or a<0 or a=1,1/a,13);

Другой пример

> m:=1: n:=-2:

> if m>0 and n>0 then y=x elif m>0 and n<0 then y=ln(x) fi;

Здесь указаны толькодве возможности для знаковm , n. В сокращенном виде такую команду писать нельзя! Нужно обязательно перечислить ВСЕ возможности. Например, добавить «для всех остальных случаев напечатать ОК»

> m:=-2:n:=-3:

> `if`(m>0 and n<0,y=x,`if`(m>0 and n>0,y=ln(x),print('OK')));

Ещё один пример: Программа для сравнения двух последовательностей.

Пусть даны две последовательности

> a[n]:=n^2; b[n]:=3-2*n^2;

Вычисляем предел отношения этих последовательностей

> lim:=limit(a[n]/b[n],n=infinity);

Затем применяем программу сравнения этих последовательностей

> if lim=0 then print('a[n]=o(b[n])') elif lim=1 then print('a[n]*~*b[n]') elif lim=infinity or lim=-infinity then print ('b[n]=o(a[n])') else print('не*знаю') end if;

Примечание. Команда print печатает произвольный набор букв (можно русских), заключенный в прямых штрихах. Слова должны быть связаны подчеркивающим тире, точками или запятыми. Лучше – звёздочками * .

da_da’ , 'net..net’ , 'или*или'

!!!Некоторые слова запрещены min , max .

Примечание.

Если вместо print('a[n]=o(b[n])') написать a[n]=o(b[n]) , то программа вместо a[n]=o(b[n]) выдаст конкретное соотношение типа 2n+3=o(n2)

2. Циклические операторы.

Это операторы, повторяющие одну и ту же операцию несколько раз.

А) Операторы с заданным числом циклов (со «счётчиком»)

ЗАДАЧА. Для п , изменяющегося от 2 до 11 с шагом 3, вычислить величину 1/п.

> for n from 2 by 3 to 11 do 1/n od;

Примечание 1. Если переменный параметр п меняется с шагом, равным 1, то этот шаг можно не указывать

> for n from 2 to 4 do 1/n od;

Примечание 2. Переменный параметр можно обозначать любой буквой. Результат от этого не зависит.

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

> for р in a,3,b do р^2 od;

Другие примеры

> tot:=0;

for z in 1,3,5 do tot:=tot+z end do;

> Q[1] := 1;

n:=1: for p in x, y, z do

Q[n+1] := Q[n]*p;

n:=n+1 end do;

> w:=[x,y,z]: Q[1]:=a:

for n in 1,2,3 do

Q[n+1] := Q[n]+w[n]

end do;

> S[0]:=0: for n in 1,2,3,4,5 do S[n]:=S[n-1]+1/n/(n+1) od;

В) Циклические операторы с условием на окончание.

ЗАДАЧА. Вычислить квадраты чисел от 5 до 9 с шагом 2.

> for n from 5 by 2 while n<=9 do n^2 od;

ЗАДАЧА. Вычислить по методу Ньютона корень уравнения х2– 3=0, проделав пять приближений (это программа со счетчиком)

> f:=x->x^2-3: f1:=x->2*x: x[0]:=2.0:

> for n from 0 while n<5 do x[n+1]:=x[n]-f(x[n])/f1(x[n]) end do;

Та же задача, но программа с условием на окончание. Условие окончания определяется близостью двух последующих приближений, т.е. малостью их разности, т.е. выполнением неравенства |xn+1 xn| = < .

> f:=x->x^2-3: f1:=x->2*x: x[0]:=2.0:eps:=0.000001:

> for n from 0 while abs(f(x[n])/f1(x[n]))>=eps do x[n+1]:=x[n]-f(x[n])/f1(x[n]) end do;

СОДЕРЖАНИЕ

стр. 1. Общие положения. Справочная система. Греческие буквы. Числа. Задачи из теории чисел.

стр. 2. Арифметика. Машинные константы. Встроенные функции. Множества (set). Индексные величины (векторы,list). Присвоение (assignment).

стр. 3. Снятие присвоения (unassignment). Задание функции. Задание последовательности.

Операции оценивания >evalf( ) , evalc( ) , value( )

стр. 4. ЭЛЕМЕНТАРНЫЕ ПРЕОБРАЗОВАНИЯ

Подстановка. Приведение подобных членов.

Нахождение в явном виде переменной (функции) из данного уравнения.

Исключение неизвестной xиз системы {f(x,y)=0 ,g(x,y)=0}

Выделение частей равенства, выделение числителя и знаменателя.

стр. 5. Команда >COMBINE( ); Команда раскрытия скобок >EXPAND(…);

Команда разложения на множители >FACTOR( ).

стр. 6. Команда >NORMAL( ); Команда упрощения >SIMPLIFY( );

Команда преобразования >CONVERT( );

стр. 7. Полиномы. Уравнения.

стр. 8. Неравенства

стр. 9. Суммы. Произведения.

стр. 10. Пределы. Асимптотика функции на +¥

стр. 11. Формула Тейлора-Пеано. Дифференцирование.

стр. 12. Интегрирование.

стр. 14 Экстремумы функций. Наибольшее и наименьшее значения функции. ТФКП.

стр. 15. Операционное исчисление

стр. 16. Интерполяционный полином. Операция “МАР”. Графика на плоскости

стр. 18. Графика в пространстве.

стр.21. Дифференциальные уравнения

стр. 26. Линейная алгебра

стр. 30. Линейные структуры на плоскости

стр. 31. Линейные структуры в пространстве

стр. 32. Программирование