Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике. Шугуров Антон.docx
Скачиваний:
6
Добавлен:
15.09.2019
Размер:
2.8 Mб
Скачать
  1. Шаблон проектирования mvc

Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Данная схема проектирования часто используется для построения архитектурного каркаса, когда переходят от теории к реализации в конкретной предметной области.

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.

Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.

Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.

Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

Для реализации схемы Model-View-Controller используется достаточно большое число шаблонов проектирования (в зависимости от сложности архитектурного решения), основные из которых «наблюдатель», «стратегия», «компоновщик».

Наиболее типичная реализация отделяет вид от модели путем установления между ними протокола взаимодействия, используя аппарат событий (подписка/оповещение). При каждом изменении внутренних данных в модели она оповещает все зависящие от неё представления, и представление обновляется. Для этого используется шаблон «наблюдатель». При обработке реакции пользователя вид выбирает, в зависимости от нужной реакции, нужный контроллер, который обеспечит ту или иную связь с моделью. Для этого используется шаблон «стратегия», или вместо этого может быть модификация с использованием шаблона «команда». А для возможности однотипного обращения с подобъектами сложносоставного иерархического вида может использоваться шаблон «компоновщик».

  1. Знакомство с “ matlab ”

MATLAB— пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете.

Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования.

Основной особенностью языка MATLAB являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно».

MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики.

Разработка алгоритмов

MATLAB предоставляет удобные средства для разработки алгоритмов, включая высокоуровневые с использованием концепций объектно-ориентированного программирования. В нём имеются все необходимые средства интегрированной среды разработки, включая отладчик и профайлер. Функции для работы с целыми типами данных облегчают создание алгоритмов для микроконтроллеров и других приложений, где это необходимо.

Визуализация данных

В составе пакета MATLAB имеется большое количество функций для построения графиков, в том числе трёхмерных, визуального анализа данных и создания анимированных роликов.

Встроенная среда разработки позволяет создавать графические интерфейсы пользователя с различными элементами управления, такими как кнопки, поля ввода и другими. С помощью компонента MATLAB Compiler эти графические интерфейсы могут быть преобразованы в самостоятельные приложения, для запуска которых на других компьютерах необходима установленная библиотека MATLAB Component Runtime.

Лабораторная работа №3.

Суперпозиция графиков.

  1. На отрезке построить и отформатировать графики:

(в отдельной ячейке присвоить a=0,5).

  1. Построить суперпозиции (и графики):

Далее y интерпретируем как экспериментальные (исходные) данные, а f(x) как аппроксимацию (приближение) исходных данных.

  1. Оценить погрешность по формулам для a=0,1; a=0,25; a=0,5:

Значение погрешности отражает близость значений построенной кривой к экспериментальным данным.

  1. Построить функцию и 3 многочлена Тейлора (для середины отрезка) для нее, согласно вашему варианту.

РЕШЕНИЕ:

%зад 1.

h=0.01; %шаг

a=0.5;

x=0:h:3.2; % х меняется от 0 до 3,2

f1=(-12*(x-1.5).^2+28)/7;

f2=3/7*sin(2*3.14*x+3.14/4);

f3=-1/7*sin(8*3.14*x);

f4=a*rand()-a/2;

subplot(2,2,1)

plot(x,f1)

subplot(2,2,2)

plot(x,f2)

subplot(2,2,3)

plot(x,f3)

subplot(2,2,4)

plot(x,f4) %построение графика

grid on %координатная сетка

%зад 2 и 3.

h=0.01; %шаг

a=0.1; %меняем значения а = 0.1; 0.25; 0.5

n=length(x);

x=0:h:3.2; % х меняется от 0 до 3,2

f1=(-12*(x-1.5).^2+28)/7;

f2=3/7*sin(2*3.14*x+3.14/4);

f3=-1/7*sin(8*3.14*x);

for i=1:n

f4(i)=a*rand-a/2;

end

f=f1+f2+f3; %приближение исходных данных

y=f1+f2+f3+f4; %исходные данные

plot(x,f,'r.',x,y) %построение графика

grid on %координатная сетка

E0=max(abs(y-f))

E1=sum(abs(y-f))/n

E2=(sum(abs(y-f)).^2/n)^1/2

E∞

E1

E2

a=0.1

0.0499

0.0253

0.1025

a=0.25

0.1247

0.0586

0.5519

a=0.5

0.2488

0.1259

2.5459

%задача 4(вар. 24)

a=0; % левый конец отрезка

b=5; % правый конец отрезка

h=0.05; % шаг сетки

x=a:h:b; % узлы сетки

f=atan(x)./(1+x.^2)

T1=(4*atan(5/2))/29 - ((80*atan(5/2))/841 - 16/841)*(x - 5/2)

T2=(4*atan(5/2))/29 - ((80*atan(5/2))/841 - 16/841)*(x - 5/2) + ((1136*atan(5/2))/24389 - 480/24389)*(x - 5/2).^2

T3=(4*atan(5/2))/29 - ((80*atan(5/2))/841 - 16/841)*(x - 5/2) + ((1136*atan(5/2))/24389 - 480/24389)*(x - 5/2).^2 - ((13440*atan(5/2))/707281 - 27776/2121843)*(x - 5/2).^3;

plot(x,f)

grid on

hold on

plot(x,T1,'m:')

plot(x,T2,'g-')

plot(x,T3,'r--')