Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Роберт Додиер - Коротко о Maxima

Роберт Додиер - Коротко о Maxima, страница 2

PDF-файл Роберт Додиер - Коротко о Maxima, страница 2 Техника эксперимента (21013): Другое - 8 семестрРоберт Додиер - Коротко о Maxima: Техника эксперимента - PDF, страница 2 (21013) - СтудИзба2018-02-15СтудИзба

Описание файла

PDF-файл из архива "Роберт Додиер - Коротко о Maxima", который расположен в категории "". Всё это находится в предмете "техника эксперимента" из 8 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "техника эксперимента" в общих файлах.

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Аргументы выражения всегда вычисляются (даже еслибы они не вычислялись при других обстоятельствах):apply(%i1) apply (sin, [x * %pi]);(%o1)sin(%pi x)(%i2) L: [a, b, c, x, y, z];(%o2)[a, b, c, x, y, z](%i3) apply ("+", L);(%o3)z + y + x + c + b + a2.создает и вычисляет выражение для каждого элемента списка аргументов. Аргументы выражения всегда вычисляются (даже, если бы они не вычислялись при других обстоятельствах).В качестве результата возвращается список:map(%i1) map (foo, [x, y, z]);(%o1)[foo(x), foo(y), foo(z)](%i2) map ("+", [1, 2, 3], [a, b, c]);(%o2)[a + 1, b + 2, c + 3](%i3) map (atom, [a, b, c, a + b, a + b + c]);(%o3)[true, true, true, false, false]3.создает лямбда-выражение (безымянную функцию). Лямбда-выражение может использоваться в некоторых случаях как обычная функция.

lambda не вычисляет тело функции:lambda(%i1)(%o1)(%i2)(%o2)(%i3)(%o3)(%i4)(%o4)6f: lambda ([x, y], (x + y)*(x - y));lambda([x, y], (x + y) (x - y))f (a, b);(a - b) (b + a)apply (f, [p, q]);(p - q) (q + p)map (f, [1, 2, 3], [a, b, c]);[(1 - a) (a + 1), (2 - b) (b + 2), (3 - c) (c + 3)]Встроенные типы объектовОбъект представляется в виде выражения. Как и другие выражения, объект содержит оператор и егоаргументы.Основные встроенные типы объектов — списки, матрицы и множества.96.1Списки1. Список задается в виде [a, b, c].2.

В списке L L[i] — i-й элемент. L[1] — первый элемент.3. map(f , L) применяет f к каждому элементу L.4. apply(” + ”, L) — сумма всех элементов L.5. for x in L do expr вычисляет expr для каждого элемента L.6. length(L) — число элементов L.6.2Матрицы1. Матрица задается в виде matrix(L1, . . . , Ln), где L1, . . . , Ln — списки элементов строк.2. Если M — матрица, то M [i, j] или M [i][j] — ее (i, j)-й элемент. M [1, 1] — элемент в верхнем левомуглу.3. Оператор .

представляет некоммутативное умножение. M.L, L.M и M.N — некоммутативныепроизведения, где L — список, а M и N — матрицы.4. transpose(M ) — транспонированная матрица M T .5. eigenvalues(M ) возвращает собственные значения M .6. eigenvectors(M ) возвращает собственные векторы M .7. length(M ) возвращает число строк M .8. length(transpose(M )) возвращает число столбцов M .6.3Множества1. Maxima работает с явно заданными конечными множествами. Множества — не то же самое, чтои списки, и преобразование множества в список и наоборот должно производиться в явном виде.2.

Множество задается в виде set(a, b, c, . . .), где a, b, c, . . . — его элементы.3. union(A, B) — объединение множеств A и B .4. intersection(A, B) — пересечение множеств A и B .5. cardinality(A) — число элементов множества A.7Типичные задачи7.1Определение функции1. Функция определяется оператором :=, при этом вычисление тела функции откладывается.В примере ниже diff пересчитывается при каждом вызове функции. Аргумент подставляетсявместо x, и вычисляется результирующее выражение. Когда аргумент представляет собой нечтоотличное от символа, происходит ошибка: для foo(1) Maxima пытается вычислить diff (sin(1)2, 1).10(%i1) foo (x) := diff (sin(x)^2, x);2(%o1)foo(x) := diff(sin (x), x)(%i2) foo (u);(%o2)2 cos(u) sin(u)(%i3) foo (1);Non-variable 2nd argument to diff:1#0: foo(x=1)-- an error.2.определяет функцию и вычисляет ее тело.В следующем примере diff вычисляется единожды (при определении), поэтому foo(1) не вызывает ошибки:define(%i1) define (foo (x), diff (sin(x)^2, x));(%o1)foo(x) := 2 cos(x) sin(x)(%i2) foo (u);(%o2)2 cos(u) sin(u)(%i3) foo (1);(%o3)2 cos(1) sin(1)7.2Решение уравнений(%i1) eq_1: a * x + b * y + z = %pi;(%o1)z + b y + a x = %pi(%i2) eq_2: z - 5*y + x = 0;(%o2)z - 5 y + x = 0(%i3) s: solve ([eq_1, eq_2], [x, z]);(b + 5) y - %pi(b + 5 a) y - %pi(%o3) [[x = - ---------------, z = -----------------]]a - 1a - 1(%i4) length (s);(%o4)1(%i5) [subst (s[1], eq_1), subst (s[1], eq_2)];(b + 5 a) y - %pi a ((b + 5) y - %pi)(%o5) [----------------- - ------------------- + b y = %pi,a - 1a - 1(b + 5 a) y - %pi (b + 5) y - %pi----------------- - --------------- - 5 y = 0]a - 1a - 1(%i6) ratsimp (%);(%o6)[%pi = %pi, 0 = 0]7.3Интегрирование и дифференцированиеintegrateвычисляет определенные и неопределенные интегралы:11(%i1) integrate (1/(1 + x), x, 0, 1);(%o1)log(2)(%i2) integrate (exp(-u) * sin(u), u, 0, inf);1(%o2)2(%i3) assume (a > 0);(%o3)[a > 0](%i4) integrate (1/(1 + x), x, 0, a);(%o4)log(a + 1)(%i5) integrate (exp(-a*u) * sin(a*u), u, 0, inf);1(%o5)--2 a(%i6) integrate (exp (sin (t)), t, 0, %pi);%pi/[sin(t)(%o6)I%edt]/0(%i7) ’integrate (exp(-u) * sin(u), u, 0, inf);inf/[- u(%o7)I%esin(u) du]/0diffвычисляет производные и дифференциалы:(%i1)(%o1)(%i2)(%o2)(%i3)(%o3)(%i4)diff (sin (y*x));x cos(x y) del(y) + y cos(x y) del(x)diff (sin (y*x), x);y cos(x y)diff (sin (y*x), y);x cos(x y)diff (sin (y*x), x, 2);2(%o4)- y sin(x y)(%i5) ’diff (sin (y*x), x, 2);2d(%o5)--- (sin(x y))2dx127.4Построение графиковplot2dстроит двумерные графики:(%i1) plot2d (exp(-u) * sin(u), [u, 0, 2*%pi]);(%o1)(%i2) plot2d ([exp(-u), exp(-u) * sin(u)], [u, 0, 2*%pi]);(%o2)(%i3) xx: makelist (i/2.5, i, 1, 10);(%o3) [0.4, 0.8, 1.2, 1.6, 2.0, 2.4, 2.8, 3.2, 3.6, 4.0](%i4) yy: map (lambda ([x], exp(-x) * sin(x)), xx);(%o4) [0.261034921143457, 0.322328869227062, .2807247779692679,.2018104299334517, .1230600248057767, .0612766372619573,.0203706503896865, - .0023794587414574, - .0120913057698414,- 0.013861321214153](%i5) plot2d ([discrete, xx, yy]);(%o5)(%i6) plot2d ([discrete, xx, yy], [gnuplot_curve_styles, ["with points"]]);(%o6)См.

также plot3d.7.5saveСохранение и загрузка файловзаписывает выражения в файл:(%i1) a: foo - bar;(%o1)(%i2) b: foo^2 * bar;foo - bar2(%o2)bar foo(%i3) save ("my.session", a, b);(%o3)my.session(%i4) save ("my.session", all);(%o4)my.sessionloadсчитывает выражения из файла.(%i1) load ("my.session");(%o4)my.session(%i5) a;(%o5)foo - bar(%i6) b;2(%o6)bar fooСм.

также stringout и batch.138Программирование под MaximaСуществует одно пространство имен, содержащее все символы Maxima. Другое пространство именсоздать нельзя.Все переменные глобальны, если не определены локально — в функциях, лямбда-выражениях иблоках.Значением переменной считается то, что было присвоено в последний раз, в явном виде, либочерез присваивание значения локальной переменной в блоке, функции или лямбда-выражении. Этаконцепция известна как динамическая область видимости.Если переменная является локальной внутри функции, лямбда-выражения или блока, ее значениелокально, но остальные свойства (заданные declare) глобальны. Функция local делает переменнуюлокальной в отношении всех свойств.По умолчанию, определение функции глобально, даже если оно содержится внутри функции, лямбдавыражения или блока.

local(f ), f (x) := . . . создает локальное определение функции.trace(foo) указывает Maxima печатать сообщение при входе в функцию foo и выходе из нее.Рассмотрим некоторые примеры программирования под Maxima.1. Все переменные глобальны, если не определены локально — в функциях, лямбда-выражениях иблоках:(%i1)(%o1)(%i2)(%o2)(%i3)(%o3)(%i4)(%o4)(%i5)(%o5)(%i6)(%o6)(x: 42, y: 1729, z: foo*bar);bar foof (x, y) := x*y*z;f(x, y) := x y zf (aa, bb);aa bar bb foolambda ([x, z], (x - z)/y);x - zlambda([x, z], -----)yapply (%, [uu, vv]);uu - vv------1729block ([y, z], y: 65536, [x, y, z]);[42, 65536, z]2. Значением переменной считается то, что было присвоено в последний раз, в явном виде, либочерез присваивание значения локальной переменной:(%i1)(%o1)(%i2)(%o2)(%i3)(%o3)(%i4)(%o4)foo (y) := x - y;x: 1729;foo (%pi);foo(y) := x - y17291729 - %pibar (x) := foo (%e);bar(x) := foo(%e)14(%i5) bar (42);(%o5)942 - %eLisp и MaximaЗаписьexpr вычисляет expr в интерпретаторе Lisp.

Эта запись распознается в строке ввода ифайлах, обрабатываемых batch, но не load.Символ foo в Maxima соответствует символу $foo в Lisp, а символ Lisp foo соответсвует символуMaxima ?foo.(defun $foo (a) (. . .)) задает функцию Lisp foo, вычисляющую свои аргументы. Из Maximaфункция вызывается записью foo(a).(defmspec $foo (e) (.

. .)) задает функцию Lisp foo, откладывающую вычисление аргументов.Из Maxima функция вызывается записью foo(a). Аргументами $foo являются (cdr e), а (caar e) всегдасовпадает с $foo.Запись (mfuncall 0$foo a1 . . . an) вызывает из Lisp функцию foo, определенную в Maxima.Обратимся к Lisp из Maxima и наоборот.1. Записьexpr вычисляет expr в интерпретаторе Lisp::lisp:lisp:lisp:lisp(%i1) (aa + bb)^2;2(bb + aa)(%o1)(%i2) :lisp $%((MEXPT SIMP) ((MPLUS SIMP) $AA $BB) 2)2.:lisp(defun $foo (a) (. . .))задает функцию Lisp foo, вычисляющую свои аргументы:(%i1) :lisp (defun $foo (a b) ‘((mplus) ((mtimes) ,a ,b) $%pi))$FOO(%i1) (p: x + y, q: x - y);(%o1)x - y(%i2) foo (p, q);(%o2)(x - y) (y + x) + %pi3.:lispтов:(defmspec $foo (e) (.

. .))задает функцию Lisp foo, откладывающую вычисление аргумен-(%i1) :lisp (defmspec $bar (e) (let ((a (cdr e))) ‘((mplus) ((mtimes) ,@a) $%pi)))#<CLOSURE LAMBDA (E) (LET ((A (CDR E))) ‘((MPLUS) ((MTIMES) ,@A) $%PI))>(%i1) bar (p, q);(%o1)p q + %pi(%i2) bar (’’p, ’’q);(%o2)p q + %pi4.

Запись (mfuncall 0$foo a1 . . . an) вызывает из Lisp функцию foo, определенную в Maxima:15(%i1) blurf (x) := x^2;2(%o1)blurf(x) := x(%i2) :lisp (displa (mfuncall ’$blurf ’((mplus) $grotz $mumble)))2(mumble + grotz)NIL16.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5301
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее