Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPR_WORD.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
968.7 Кб
Скачать

8.3. Анимация графиков.

1. Анимация графиков (Animation) позволяет видеть в реальном времени изменение функции с изменением аргумента (им может быть время, но и любая величина, т. к. программа понимает только обозначения, но игнорирует их смысл и физику). Оператор animate.

Предварительно вводится команда with(plots), подключающая соответствующий пакет (действует вплоть до перезапуска программы). Затем формируется команда анимации. После её исполнения выводится обычный график. Щелчок на нём активизирует меню Animation. Для запуска анимации нажмите play (играть). Программа некоторое время "думает"! Кривая пройдёт все положения в интервале значений изменяемого в анимации параметра. Эту процедуру можно продолжить щелчком на п. Continuous (Продолжение) (до отмены). Выводится дополнительная панель инструментов анимации, которую можно использовать для управления наряду с меню. Пример:

> with(plots):

> animate(plot, [A*x^2,x=-4..4], A=-3..3);

График 8.10. В операнду включены: команда plot, список, содержащий функцию и область значений аргумента х, и интервал значений изменяемого параметра А - коэффициента параболы в данном случае. Чтобы увидеть результат, запустите процедуру, как сказано выше. MW не поддерживает эту процедуру!

2. Анимация со следами. Эта команда может быть использована для получения графического изображения семейства кривых, получаемых изменением параметра. Операнда дополняется параметром, указывающим требуемое число следов (trace) (начальное положение кривой не в счёт).

> animate(plot, [A*x^2,x=-4..4], A=-3..3, trace=5, frames=50);

График 8.11. Семейство 5 следов параболы при изменении коэффициента А в данных пределах (frames - необязательный параметр). Чтобы увидеть результат, запустите процедуру, как сказано выше. MW не показывает семейство следов!

Об анимации 3-мерных графиков и о других, весьма широких графических возможностях программы см. Help.

>

9. Решение алгебраических уравнений и их систем.

Стандартное обозначение уравнения - eq (equation), системы уравнений - eqs (equations). (Можно использовать другие обозначения, но об этом надо помнить и не повторять их в том же файле в другом смысле). При отсутствии решений программа возвращает ввод, либо не даёт вывода, либо вступает в диалог. Возможен поиск решения с условием, задаваемым оператором assume. Но в этом случае какое-либо решение может быть потеряно (lost), или это условие может быть игнорировано программой, о чём программа предупреждает в диалоге.

9.1. Решение отдельного уравнения.

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

> eq1:=x^3-12*x^2+47*x-60=0; solve(eq1, x);

> eq2:=x^2+4=0; X:=solve(eq2, x);

Корни - мнимые.

Вычисление корней в десятичных числах (1 действительный корень, 2 - комплексных):

> y3:=x^3-6*x^2+18*x-27: eq3:=y3=0; solve(eq3, x); evalf(%);

Возможно указание интервала, на котором ищется решение.

> solve({x^2-1, x>0},[x]); solve({x^2-1, x<0},[x]);

На разных интервалах получили разные корни.

> assume(x>0); solve(x^2-1, x);

Warning, solve may be ignoring assumptions on the input variables.

Программа игнорировала условие.

> eq1:=x^3-12*x^2+47*x-60=0; assume(x<0); solve(eq1, [x]);

Warning, solve may be ignoring assumptions on the input variables.

В последнем случае решения при x<0 нет, программа учла условие, но вывела пустой список.

Графическое решение уравнения показывают точки пересечения его графика с осью абсцисс (y = 0). Их численные значения можно определить наведением курсора мыши (см. п. 8). Для двух приведённых выше уравнений:

> plot([x^3-12*x^2+47*x-60, x^2+4, y3], x=0..6, -10..10, style=[line,line,line], color=[black,red,blue]);

График 9.1. Графическое решение тех же уравнений показывает 3 действительных корня для 1-го уравнения, отсутствие действительных корней для 2-го, 1 действительный корень - для 3-го. Мнимые и комплексные корни не соответствуют никаким точкам на действительной плоскости. Область значений аргумента и функции выбрана из соображений наглядности.

Решение в общем виде с произвольными коэффициентами. Обозначение решений: sols (solutions). После общего решения производится подстановка. Её можно выполнить сразу для множества решений (как сделано ниже), а можно для какого-то одного. Для дальнейших действий с каким-либо одним решением его надо обозначить отдельным присвоением.

> y4:=a*x^2+b*x+c: eq4:=f4=0; sols:={solve(eq4, x)}; sols2:=subs([a=1,b=3,c=2],sols);

Численная проверка решения подстановкой в исходное уравнение.

> y5:=subs([a=1,b=3,c=2],y4); subs([x=-1,x=-2],y5);

Графическая проверка решения:

> plot(y5,x=-3..1, y=-1..3);

График 9.2. Графическое решение eq4 c подставленными значениями коэффициентов. Легенда убрана.

>

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