Краткие теоретические сведения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Краткие теоретические сведения



Среда Maxima – это свободное программное обеспечение (СПО), предназначенное для символьных вычислений (CAS – ComputerAlgebraSystem). С её помощью можно проводить преобразования выражений, решать уравнения и системы, находить производные, интегрировать. Также имеются некоторые возможности для численных расчётов, построения графиков. Графический интерфейс пользователя вызывается через надстройку wxMaxima.

Работа с системой. В системе wxMaxima ввод каждой строки необходимо завершать нажатием Ctrl+Enter. Если необходимо обработать сразу несколько команд, то между ними можно поставить знак; (на экран будут выведены результаты каждой команды последовательно), $ (результат команды, находящейся перед этим знаком, выведен не будет. Для удобства строку можно разорвать в любом месте, нажав Enter. На результате такие разрывы строк не отразятся. В конце всего поля ввода знак; можно не ставить, он будет добавлен автоматически. Поля ввода в системе помечаются значком (%i11), где 11 – номер поля; им соответствуют поля вывода (%o11), куда выводятся результаты (по умолчанию они выводятся в форме, близкой к математической, однако при их копировании они преобразуются в форму, пригодную для ввода в систему Maxima). Если необходимо скопировать результаты (например, в отчёт), то выделяют все поля. Копирование рекомендуется осуществлять комбинацией клавиш Ctrl+Shift+C (скопируется весь текст) или выбором в меню правки CopyAsText. При необходимости скопировать как текст, так и картинку, в меню правки выбирают CopyAsImage. Другие варианты следует использовать только в специальных случаях. Обычная комбинация Ctrl+C – Ctrl+V работает для копирования части выражения в пределах программы Maxima. При слишком длительном расчёте в меню Maxima можно использовать команду Прервать или RestartMaxima. В случае сомнений в использовании команды можно установить на неё курсор и вызвать справку (на английском языке) кнопкой F1.

В системе Maxima используются выражения, переменные (в т.ч. массивы), функции, команды и флаги. Функции и команды требуют один или несколько аргументов в круглых скобках; аргументы разделяют запятыми.

Выражения. Математические выражения в среде Maxima записываются в виде, близком к стандартному математическому. Следует помнить некоторые особенности: знак умножения – *, его нельзя опускать между множителями (например, запись “2a” обязательно привести к виду “2*a” (между тем, в выводе результата этот знак может оказаться опущенным). Знак возведения в степень - ^. Натуральный логарифм lnx записывается как log(x). В среде maxima все аргументы функций необходимо брать в скобки. В десятичных дробях вместо запятой целую часть от дробной отделяют точкой. Maxima умеет работать как с действительными, так и с комплексными числами (при этом i обозначается как %i). Это может слегка смутить пользователя, если ему нужны только действительные решения. Выражение, записанное в строке, после нажатия Ctrl-Enter автоматически вычисляется. Если его вычислить до конца невозможно или нецелесообразно, оно максимально упрощается.

Переменные. В состав любого выражения могут входить переменные. По умолчанию они остаются неизвестными, и в результате окажутся в неизменном виде. Переменной можно присвоить любое значение, причём как числовое, так и выражение (в т.ч. содержащее и другие переменные). В итоге, это выражение будет подставлено вместо переменной в неизменном виде. Знак присваивания – двоеточие (:). Например,

a:2.75$

a+1;

3.75

Функции. В отличие от переменных, функции зависят от аргумента (аргументов). Например, можно определить функцию f(x,y), а потом вызывать f(2,3). Для определения функции служит знак:=

f(x):=x^2$

f(2);

4

Подстановка. При наличии выражения, не заданного как функция, но содержащего неопределённые переменные, их можно определить, используя команду ev. Например

a:x^2+3*x$

ev(a,x=2);

10

Подстановку можно использовать для результата команды solve и других, ей подобных. При желании через подстановку можно определить новую функцию.

a:x^2$

f(x):=ev(a,x);

f(x):=ev(a,x)

f(x);

x^2

Переменные-флаги. В системе имеется несколько переменных-флагов, меняющих характер расчётов. Одним из наиболее важных для оптимизации флагов является флаг numer. По умолчанию он равен false, в результате чего Maxima будет пытаться представить результат в виде обыкновенной дроби, не вычислять значения квадратных корней и т.п. Если результаты должны быть представлены десятичными дробями, этот флаг надо установить в true так: numer:true

Массивы, системы уравнений. Массивом является некоторый набор выражений или уравнений. Выражения разделяются запятой, а весь массив заключается в квадратные скобки. Массив можно присвоить переменной; вызвать элемент можно указав после имени переменной-массива индекс в квадратных скобках.

Решение уравнений (выражение одной переменной через другие). Универсальной командой для решения уравнений является команда solve. Параметрами этой команды являются уравнение и переменная, по которой надо решить (в итоге эта переменная будет выражена). Результатом команды является массив, который можно присвоить переменной.

 

s:solve(x^3+3*x^2-3*x+1=0,x);

[x=-2^(2/3)*((sqrt(3)*%i)/2-1/2)-2^(1/3)*(-(sqrt(3)*%i)/2-1/2)-1,x=-2^(1/3)*((sqrt(3)*%i)/2-1/2)-2^(2/3)*(-(sqrt(3)*%i)/2-1/2)-1,x=-2^(2/3)-2^(1/3)-1]

s[3];

x=-2^(2/3)-2^(1/3)-1

numer:true$

s[3];

x=-2^(2/3)-2^(1/3)-1

    Таким же образом можно решать системы уравнений. Систему следует передавать в массиве; список переменных также передаётся в массиве. Более удобный результат может быть получен с помощью команды algsys.

    Не все уравнения решаются аналитически, некоторые требуют численного решения. Действительный корень одиночного уравнения (выражения) можно найти с помощью команды find_root. Первым её аргументом является уравнение, вторым – переменная, третий и четвёртый составляют интервал, в котором надо искать корень. Например

find_root(log(x)=tan(x), x, 0.1, 2);

1.570796326794897

Дифференцирование и интегрирование. Дифференцирование осуществляется функцией diff. Первым аргументом является функция, вторым – переменная, по которой дифференцируют. При необходимости третьей переменной является порядок производной.

diff(sin(x),x);

cos(x)

Неопределённый и определённый интегралы находят командой integrate. Первым параметром всегда служит подынтегральное выражение, а вторым – переменная, по которой интегрируют. В случае неопределённого интеграла результатом будет одна из первообразных, нужно иметь в виду, что к ней надо прибавить постоянную интегрирования. Для определённого интеграла третьим и четвёртым параметрами задают пределы интегрирования.

integrate(sin(x),x);

-cos(x)

integrate(sin(x),x,0,1);

rat: replaced[4] -1.0 by -1/1 = -1.0

rat: replaced -0.5403023058681 by -4779840/8846603 = -0.5403023058681

0.45969769413186

Построение графиков.

График двумерной функции можно построить с помощью команд plot2d или wxplot2d. Синтаксис команд идентичен, результат отличается только тем, что первая выдаёт график в отдельном окне, а вторая – вставляет непосредственно в окно ввода-вывода. Первым аргументом команды является функция, второй представляет собой массив из трёх элементов: переменной и диапазона построения графика.

График трёхмерной функции строят командой plot3d или wxplot3d, в неё (по сравнению с plot2d) вводят дополнительный параметр – массив, состоящий из второй переменной и пределов её изменения.

Ход работы

    Последовательность действий для изучения:

1. Запустите программу wxMaxima и познакомьтесь с интерфейсом.

2. Проделайте все те операции, которые указаны в теоретических сведениях. Подберите по паре своих примеров на каждую разбираемую операцию, обратите особое внимание на случаи, когда наблюдается нестандартное и/или неожиданное поведение системы.

3. Используя уравнение регрессии, полученное с прошлой работы:

3.1Постройте его трёхмерный график и предположите наличие экстремумов;

3.2Найдите точку, подозрительную на экстремум.

 

ЧАСТЬ 2. ОПТИМИЗАЦИЯ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ В СРЕДЕ MAXIMA

Цель работы: Изучить возможности оптимизации функции двух переменных.

Задачи:

1. Научиться определять точку, подозрительную на экстремум

2. Научиться проверять значения на границах интервала варьирования

Ход работы

    Последовательность действий:

1. Получите задание в виде функции двух переменных.

2. Запустите программу wxMaxima и определите функцию.

3. Присвойте флагу numer значение true.

4. Найдите частные производные функции, приравняйте их к нулю и решите уравнение командой solve. Поскольку необходимо искать только действительные корни, можно присвоить флагу realonlytrue, но уравнения решать командой algsys, а не solve. При невозможности решения командами solve и algsys воспользуйтесь командой to_poly_solve (команда работает ОЧЕНЬ медленно). Если таким способом решение получить не удаётся, то можно попробовать перед решением системы решить одно уравнение, а потом подставить его во второе.

5. Проверьте значения функции в точках, соответствующих всем действительным решениям (и x, и y не должны содержать %i). Для дальнейшего рассмотрения выберите наибольшее (наименьшее) число. Проверяйте, чтобы x и y находились в границах заданного интервала.

6. Найдите и проверьте экстремумы (точки, подозрительные на экстремум) на следующих срезах, приравняв производные полученных функций к 0:

7.

8. Проверяйте, чтобы x и y находились в границах заданного интервала.

9. Определить значения функции в углах диапазона

10. Из найденных в пп. 4, 5, 6 точек найдите точку с наибольшим (наименьшем) значением функции и сделайте вывод. В ответ обязательно запишите значения x и y.

11. Постройте трёхмерный графикфункции.

Содержание отчёта

Общие требования к содержанию отчёта приведены в рамках практической работы № 1. В данной работе в разделе «ход работы» необходимо представить результаты выполнения работы в среде Maxima, допускается прилагать файл, сохранённый в этой среде (.wxmx). В качестве вывода следует указать найденную точку экстремума.

Вопросы для самоконтроля

1. Какие действия необходимо выполнить для проведения безусловной оптимизации аналитическим методом первого порядка в двухфакторной задаче?

2. Что такое системы компьютерной алгебры (символьной математики)? Какие задачи они позволяют решить?

3. Что такое «седловая точка»? Является ли она экстремумом?

 

 

Задания для работы

1. , , найти минимум

2. , , найти максимум

3. , , найти минимум

4. , , найти минимум

5. , , найти минимум

6. , , найти минимум

7. , , найти минимум

8. , , найти минимум

9. , , найти минимум

10. , , найти минимум

 

 

Практическая работа № 8



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 112; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.190.93 (0.025 с.)