Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metoda_po_inf_ch_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.83 Mб
Скачать

2.2. Составные математические объекты

Элементами составных математических объектов являются числа, имена выражения и любые другие объекты. В качестве основных составных объектов в Maple используют: последовательности, множества, списки, таблицы и некоторые другие. Например:

  1. последовательности (exprseq)

> s:= 1,4,9,25;

> t:= sin, cos, tan;

> whattype(s);

Пустая последовательность обозначается NULL. Последовательности ассоциативны, т.е. складываются

> s:=1,(4,9,16),25;

> t:=s,s;

Наиболее эффективный путь создания последовательностей - это применение специальной функции seq (не применяйте для этого циклы, данная команда более эффективна, так как не создает промежуточных последовательностей). Например:

> s:=seq( i^2, i=1..5 );

С другой стороны

> s:=NULL; for i from 1 to 5 do s:=s,i^2 od;

Как видим, цикл работает медленее и занимает больше памяти. Другие примеры:

> seq( x[i], i=1..5 );

> a:=38*x^2+y*x-11;

> seq(coeff(a,x,i),i=0..degree(a,x));

> seq(D(f),f=[sin,cos,tan,exp,ln]);

  1. множества ( set )

> s:={x,1,1-z,x};

> whattype(s);

Как мы видим, в множестве не может быть одинаковых элементов. Пустое множество обозначается {}. Для работы с множествами используют команды union, intersect, minus:

> {a,b} union {b,c};

> {a,b} intersect {b,c};

> {a,b} minus {b,c};

> a union b union a;

> {3,4} union a union {3,7};

> `union`({3,4},a,{3,7});

  1. списки ( list )

Списки отличаются от множеств тем, что в них могут присутствовать одинаковые элементы

> List:=[x,1,1-z,x];

> whattype(List);

> [x,y,y];

> [y,x,y];

Заметим, что это разные списки! Для создания списков и множеств можно использовать команду seq, это эффективнее, чем применение циклов.

> L := [seq(x[i],i=1..4)];

> L[2];

Для добавления элемента в список

> L := [op(L),x[5]];

Для выделения части списка

> L[-3..-2];

Для сокращения списка (выбрасываем второй элемент)

> L := subsop(2=NULL,L);

Список также может состоять из списков

> L:=[[1,2],[3,4,5]];

Элементами множеств и списков могут быть так же сами множества или списки.

Для работы с множествами и списками используют следующие логические операторы:

  • member

  • has

  • convert

> member(y, {x, y, z});

> member(y, {x*y, y*z});

> member(x*y, [x*y, w+u, y]);

> member(w, [x, y, w, u], 'k'); k;

В последнем примере мы присвоили переменной k номер элемента w в данном списке. Аналог данной команды для выражений:

> f := (a+b^3+c)^(4/3);

> has( f, a );

> has( f, b^3 );

> has( f, b^2 );

> has( f, a+b^3+c );

> has( f, a+c );

> has( f, {c,d} );

> has( f, {d,e} );

Оператор преобразования

> convert( [1,2,3,4], `+` );

> f := seq( x[i]^i, i=1..4 );

> convert([f], `*`);

3. Команды ввода и вывода

Намного отвлечемся от математических операций и поговорим о программировании. Сохранить весь файл в одном из форматов Maple или в текстовом (txt, tex) форматах достаточно просто, используя меню. Достаточно часто необходимо сохранить только результат вычислений. Для этих целей существует несколько команд.

Пример 7 (команда save и некоторые другие).

Переменные x,y,z записываются в файл name.ext командой

> save x, y, z, `name.ext`:

Соответственно для ввода данных используют команду

> read `name.ext`

Если Вы хотите записать все результаты в файл, используйте команды writeto(filename), appendto(filename) или writedata, writestat, writebytes, writeline. Можно печатать результаты в файл или на экран. Для этого служат команды print, lprint и printf - печать по формату. Как обычно, при этом надо файл открыть и закрыть open, close (и это не единственные команды данного типа).

Перед тем, как записывать данные, Вы их можете конвертировать convert к необходимому Вам виду.

Для удобства, можно непосредственно переписать все в формате следующих языков: Си, Фортран и LaTeX (например, смотри fortran[procedure]).

Если Вы хотите использовать Maple для анализа и графичекой интерпретации числовой информации, то Вам потребуется считывать данные из других файлов. Для этих целей служит набор команд read, readline, readdata, readstat, readbytes, fscanf, parse.

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