|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРОГРАММИРОВАНИЕПри составлении программ на языке 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| = <e. > 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 Уравнения………………………………………………………………….. 8 Неравенства………………………………………………………………… 9 Суммы ……………………………………………………………………… 9 Произведения……………………………………………………………… 10 Пределы……………………………………………………………………. 10 Асимптотика функции на +¥ ……………………………………………. 11 Формула Тейлора-Пеано………………………………………………….. 11 Формула Тейлора для неявно заданной функции………………………. 12 Дифференцирование……………………………………………………… 12 Производная от неявно заданной функции……………………………… 13 Интегрирование …………………………………………………………… 13 Интегрирование. Учебный пакет with(student)………………………….. 13 Экстремумы функций……………………………………………………… 15 Наибольшее и наименьшее значения функции…………………………… 15 ТФКП………………………………………………………………………… 15 Операционное исчисление…………………………………………………..16 Интерполяционный полином………………………………………………..17 Операция одновременных действий >map…………………………………17 Графика на плоскости………………………………………………………...17 Графика в пространстве………………………………………………………20 Дифференциальные уравнения……………………………………………… 22 Линейная алгебра…………………………………………………………… 28 Элементы теории поля……………………………………………………… 32 Линейные структуры на плоскости…………………………………………. 33 Линейные структуры в пространстве……………………………………… 34 Пакет >plottools (геометрические фигуры)…………………………………35 Программирование…………………………………………………………….36
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.022 сек.) |