Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAPLE 6 – 11, инструкция.doc
Скачиваний:
50
Добавлен:
08.02.2015
Размер:
773.12 Кб
Скачать

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

При составлении программ на языке 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]