![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
При решении уравнений в частных производных регулярно возникает необходимость отобразить развитие функции решения в зависимости от времени. В предыдущих упражнениях мы отображали полученные решения для нескольких моментов времени.
Но очень часто возникает ситуация, когда моментов времени, которые нас интересуют, достаточно много. В этом случае приходится строить большое количество графиков, анализ которых становится слишком трудоемким.
MATLAB позволяет ускорить данный анализ с помощью средств анимации графики.
Общая идея, которая лежит в основе создания анимации в MATLAB, заключается в следующем. Выбирается некоторое равномерное разбиение интервала по времени (некоторый шаг). Для последовательных моментов времени, отстоящих на данный шаг, строится отдельный график. Таким образом, получается последовательность графиков, которая впоследствии превратится в последовательность кадров для создаваемой анимации.
Созданная последовательность кадров сохраняется в массив с помощью специальной команды getframe. Вызов данной функции осуществляется для каждого кадра (графика). Можно поместить рисование кадров в цикл с перерисовкой одного графического окна в каждом цикле. При этом команда getframe должна даваться на каждой итерации цикла.
Сохраненная последовательность кадров может быть проиграна с помощью команды movie. Первым параметром данной команды является массив сохраненных кадров, вторым необязательным параметром число повторений последовательности при проигрывании.
Существует возможность сохранить записанную анимацию в файл с помощью команды movie2avi.
Пример П.3. Задано уравнение функции от координаты x и от времени t: . Отобразить данную функцию для моментов времени от 0 до 100 с шагом 1. Сохранить последовательность графиков в виде анимации. Дополнительно на графике отобразить асимптоты графика
и
.
Решение этой задачи описывает программа:
x=-4*pi:pi/20:4*pi;
for t=0:100
y=x.*cos(x+pi*t/10.0);
plot(x,y,'b-');
hold all;
plot(x,x,'r-');
plot(x,-x,'r-');
xlim([-4*pi 4*pi]);
ylim([-4*pi 4*pi]);
grid on;
xlabel('x');
ylabel('y');
M(t+1)=getframe;
hold off;
end
movie(M, 20) % повторяем 20 раз
Упражнение 3. Для задач, рассмотренных в упражнении 2, построить анимированный график зависимости колебаний струны от времени. Конечное время и шаг по времени выбрать таким образом, чтобы отсутствовали резкие скачки решения между кадрами и наблюдалось полное затухание колебаний в конечный момент времени.
Дата публикования: 2015-10-09; Прочитано: 4475 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!