- •Математические пакеты
- •Как набирать греческие буквы (выводятся на экран при выдаче результата)
- •Машинные константы:
- •!!!Присвоение сохраняется до тех пор, пока оно не будет снято или же не будет заменено другим присвоением!!!
- •Уравнения
- •Неравенства
- •Конечные суммы
- •Бесконечные суммы
- •Графика в maple
- •Дифференциальные уравнения
- •Линейная алгебра
- •Задание вектора
- •Основные задачи линейной алгебры
- •Программирование
- •Уравнения………………………………………………………………….. 8 Неравенства………………………………………………………………… 9
Программирование
При составлении программ на языке 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));
Примечание. Такая форма записи используется для кусочно заданной функции
>piecewise(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(‘…..’) можно писать ‘…..’ .
Примечание.
Если вместо 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
Греческий алфавит. Форматы чисел…………………………………….1
Задачи из теории чисел……………………………………………………2
Арифметика. Машинные константы……………………………………. 2
Встроенные функции. Множества (set)………………………………….2
Списки (list)………………………………………………………………..3
Присвоение. Снятие присвоения……………………………………….. .3
Задание функции. Кусочно-заданные функции…………………………3
Задание последовательности……………………………………………. .4
Операции оценивания evalf( ) ,evalc( ) ,value( ) ………………… .4
Операция подстановки subs( )……………………………………………4
Приведение подобных членов collect……………………………………5
Исключение неизвестной xиз системы…………………………………. 5
Выделение частей равенства, выделение числителя и знаменателя….. 5
Команда >COMBINE( ); …………………………………………………5
Команда раскрытия скобок >EXPAND(…);…………………………… 5
Команда разложения на множители >FACTOR( )……………………... 6
Команда приведения к общему знаменателю >NORMAL( );………….6
Команда упрощения >SIMPLIFY( );……………………………………. 7.
Команда преобразования >CONVERT( );……………………………… 7
Полиномы…………………………………………………………………. 7