50103

Вычисления в MatLab

Книга

Информатика, кибернетика и программирование

Пример выполнения работы Материалы для заданий 1 2 Потери пучка при прохождении через вещество В этой работе можно познакомиться с основным методом моделирования применяемым при исследовании прохождения пучков частиц через вещество методом статистического моделирования называемым методом МонтеКарло. При этом судьба каждой частицы разыгрывается с помощью случайного выбора а полученные для множества частиц результаты подвергаются статистической обработке. Метод применяется например при проектировании ядерных реакторов...

Русский

2014-01-16

728.5 KB

29 чел.

Практикум (лабораторный)

Общие требования к содержанию, оформлению, порядку выполнения и защиты лабораторных работ

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

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

Лабораторные занятия проводятся в компьютерных классах.

Рекомендации по выполнению лабораторных работ

Номер варианта индивидуального задания определяется последней цифрой в зачетной книжке студента (цифра 0 соответствует варианту № 10) или порядковым номером компьютера в компьютерном классе, за которым работает студент.

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

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

Программирование методов, указанных в заданиях лабораторных работ, следует выполнять самостоятельно, используя команды языка программирования пакета Matlab.

После завершения создания m-файлов в пакете Matlab, реализующих указанные методы, следует выполнить вычисления на основании данных своего варианта. Вариант исходных данных определяется номером компьютера студента в компьютерном классе. Обязательно следует выполнить проверку полученных на компьютере результатов вычислений.

Требования к оформлению отчета

Отчет оформляется в соответствии с приведенным образцом.

Отчет о выполнении задания лабораторной работы должен содержать следующие разделы:

1. Формулировка задания на программирование.

2. Краткое описание исследуемого метода - фрагмент лекционного материала.

3. Текст программы в виде m-файла - является основным результатом выполнения работы.

4. Исходные данные, номер варианта.

5. Результаты вычислений, включая промежуточные результаты - копии текстовых файлов или копии экранных форм, графики.

6. Результаты проверки полученных данных

7. Ответы на контрольные вопросы о действии операторов в разработанной программной реализации метода - вопросы формулируются преподавателем после предварительного ознакомления с текстом созданной программы.

Для подготовки отчетов по лабораторным работам следует выделять отдельные учебные часы.

Контрольные вопросы к защите работы

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

Способ оценки результатов

Результатом выполнения лабораторной работы является отчет, требования к оформлению которого указаны выше.

Защита отчета состоит в следующем: студент должен объяснить действия любого оператора или группы операторов программы, текст которой содержится в отчете.

По результатам успешной защиты студент получает оценку «зачтено».

Лабораторная работа № 1. Символьные вычисления в MatLab 

Теоретическая часть. Общая постановка задачи. Пример выполнения работы

В ходе выполнения работы будут рассмотрены следующие операции:

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

- Выполнить дифференцировать и интегрировать аналитическое выражение.

- Разложить в ряд Тейлора функцию, заданную аналитическим выражением.

- Работа с командой funtool.

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

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

В именах функций имеет значение высота букв.

Результат символьных преобразований выводится в командное окно с новым символьным именем. В отличие от вывода результатов несимвольных преобразований выводимое значение размещается без абзацного отступа.

1. Развертка и свертка выражений.

Под разверткой понимается запись выражения в развернутой форме (с открытыми скобками). Под сверткой понимается обратное действие.

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел.

- Затем надо ввести исходную функцию  и отобразить ее в командном окне в естественном виде (команда pretty).

Например,

>> syms x a b

>> f=(sin(x)+a)^2/sqrt(abs(a+b))

f =

(sin(x)+a)^2/abs(a+b)^(1/2)

>> pretty(f)

                                            2

                                (sin(x) + a)

                                -------------

                                         1/2

                                | a + b |

или 

>> f=sym('sin(x)')

f =

sin(x)

>> pretty(f)

                                   sin(x)

- Далее следует выполнить операцию развертки и получить результат с именем f1_new. Для этого используется функция ехраnd(имя переменной). 

- Затем над f1_new нужно выполнить операцию свертки и получить результат с именем f1_old. Для этого используется функция simple(имя переменной). 

- Признаки правильного выполнения операций - при свертке результата развертки восстанавливается исходная функция.

Пример выполнения

f 1 (х)=(а+х)3

f2(x)=sin(x)/x

% Задача 1

% Определить символьные переменные

syms а х;

% Функция

f1=(a+x)^3

pretty(f1)

% Расширить ее

f1_new=expand(f1)

% Свернуть расширенное

f1_old=simple(f1_new)

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

>> c=sym('sqrt(2)');

>> cn=vpa(c)

 cn =

1.4142135623730950488016887242097

По умолчанию вычисляется 32 значащие цифры. Второй входной параметр команды vpa() служит для задания точности:

>> cn=vpa(c,70)

 cn =

1.414213562373095048801688724209698078569671875376948073176679737990732

Важно: Выходной аргумент команды vpa() является символьной переменной.

2. Дифференцирование и интегрирование выражений.

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

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел).

- Затем надо ввести исходную функцию и отобразить ее в командном окне в естественном виде (команда pretty).

- Далее следует выполнить операцию дифференцирования и получить результат с именем f1_new. Для этого используется функция diff(f1,'x',n). здесь f1- имя функции, 'х' - имя переменной (вводится, как строка, в апострофах), по которой производится дифференцирование, n - порядок производной. Например,

>> P= diff('atan(x)',x,1);

>> pretty(P)

                                      1

                                   ------

                                        2

                                   1 + x

- Затем над f1_new нужно выполнить операцию интегрирования и получить результат с именем f1_old. Для этого используется функция int(f1_new,'x'). здесь f1_new - имя функции, 'х' - имя переменной (вводится, как строка), по которой производится интегрирование.

- Признаки правильного выполнения операций - при интегрировании результата дифференцирования восстанавливается исходная функция.

% Задача 2

% Определить символьные переменные

syms a x;

% Функция

f1=(a+x)^3

pretty(f1)

% Найти первую производную по х

f1_new=diff(f1,'x',1)

% Найти неопределенный интеграл по х

f1_old=int(f1_new,'x')

3. Разложение в ряд Тейлора.

Для заданного выражения находится ряд Тейлора с остаточным членом, величина которого зависит от точности, выбираемой при выполнении операции. Остаточный член отбрасывается.

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел

- Затем надо ввести исходную функцию.

- Далее следует выполнить операцию разложения в ряд Тейлора и получить результат с именем f1_new. Для этого используется функция taylor(f1,n,'x',a). Здесь f1 - имя функции, переменной, n - порядок остаточного члена, , 'x' - имя переменной (вводится, как строка, в апострофах), по которой производится разложение, а - значение переменной, для которого делается разложение (если оно пропускается, то предполагается а=0).

- Затем над f1_new нужно выполнить операцию свертки и получить результат с именем f1_old. Для этого используется функция simple(имя переменной).

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

- Для построения графиков символьных функций имеется процедура ezplot(f2,-h,h);grid on. Здесь f2 - имя символьной функции, (-h h) - нижний и верхний предел значений аргумента, grid on – включает в графике координатную сетку. В заголовок графического окна помещается описание функции. По этой причине в одно графическое окно можно вывести только один график.

% Задача З

% Определить символьные переменные

syms x;

% Функция

f2=sin(x)/x

% Найти разложение Тейлора по х в точке О

f2_new=taylor(f2,5,'x',0)

% Диапазон просмотра

п=4;

% График f2

figure(1);

ezplot(f2,-h,h);grid on

% График f2_new

figure(2);

ezplot(f2_new,-h,h);grid on

4. Исследование скорости роста символьной функции, описывающей некоторые параметры модели объекта

Построение математической модели для исследования указанной  задачи состоит  в построении касательной функции в некоторой точке X0, затем создания анимации процесса  построения касательной в точках диапазона [X0-1,X0+1].

Алгоритм, реализующий решение поставленной задачи, включает следующие шаги:

1. Определение символьной функции по входной строковой переменной при помощи sym.

2. Нахождение производной в символьном виде.

3. Формирование символьного выражения для касательной.

4. Построение графика символьной функции на некотором интервале [X0-1,X0+1] с шагом 0.1.

5. Построение движущейся точки касания и графика касательной в этой точке.

 Рекомендации по выполнению задания:

A. Следует создать файл-функцию tangent1(‘x^2’,0), возвращающую символьную строку yt, которая содержит символьную запись уравнения производной в некоторой точке X0.

1. В создаваемую файл-функцию tangent1 следует передать в качестве параметра f1 - строку символов, содержащую запись исследуемой функции (см. вариант) и в качестве параметра Х0 - некоторое значение переменной х,  для которого необходимо построить касательную.

1. Для вычисления значения Y0 символьной функции f10, соответствующей строке f1, в точке X0 следует использовать:

sym x

f10=sym(f1);

Y0=subs(f10,’x’,X0);

2. Для символьного задания уравнения касательной следует использовать уравнение прямой, проходящей через точку (x0,y0), и команду sym

>> yt=sym('y0+k*(x-x0)')

yt =

y0+k*(x-x0)

3. Для вычисления коэффициента K наклона касательной следует продифференцировать исходное уравнение и найти его значение в точке X0, используя команды

 f11=diff(f10,’x’,1);

и  K = subs(f11,’x’,X0);

4. Последовательно подставить значения коэффициента k и координат точки x0, y0

>> K=3;  %K – необходимо вычислить на предыдущем шаге

>>   %K=3 выбрано в качестве примера

>> yt=subs(yt,'k',K)

yt =

y0+3*x-3*x0

>> yt=subs(yt,'x0',X0);

>> yt=subs(yt,'y0',Y0);

В.  Построение анимации движения касательной

Для получения анимированной визуализации процесса построения касательных следует воспользоваться командами из следующего примера

% анимациz

% последовательного построения касательной к графику

% функции y=x^2 в точках x0 от -1 до 1

% h3 – дескриптор, используемый для анимации движения точки касания

% h1 – дескриптор, используемый для анимации положения касательной

clear;

x=[-1:0.1:1];        % интервал изменения переменной х с шагом 0.1

% для построения графика кривой

x1=[-1.5:0.1:1.5]; % интервал изменения переменной х с шагом 0.1

% для построения отрезка касательной

% задать дескриптор точки касаниz

x0=x(1);

y0=x0*x0;        % в лаб. работе

% y0 вычисляется на основе символьной функции

h3=line(x0,y0);

set(h3,'Marker','o');

set(h3,'color','b');

set(h3,'EraseMode','xor');

% задать дескриптор графика функции y=x^2

y2=x.*x;  % в лаб. работе

% y2 вычисляется на основе символьной функции

% команды subs и вектора х

h2=line(x,y2);

set(h2,'color','r');

% задать дескриптор уравнениz касательной в точке (x0,y0)

y1=y0+2*x0*(x1-x0);

h1=line(x1,y1);

set(h1,'color','g');

set(h1,'EraseMode','xor');     %'background');

% зададим диапазон изменениz переменных вдоль осей Х и Y

axis([-2 2 -1 4]);

axis manual;

% принудительный вывод графиков, заданных дескрипторами

pause(0.1);

k=length(x);

% бесконечная анимация, завершить - Ctrl+C

while 1

   for i=1:k

       x0=x(i);

       y0=x0*x0;        % в лаб. работе

% y0 вычисляется на основе символьной функции

       y1=y0+2*x0*(x1-x0);   % 2*x0 – это коэффициент наклона касательной

% для функции x^2

    % в лаб. работе для нахождения y1 надо

% использовать символьную функцию, записанную в строку yt 

% команду subs и вектор х1

% yt – здесь находится для каждой точки х0

 % прорисовка точки и касательной в новом месте

       set(h3,'XData',x0,'YData',y0);

       set(h1,'XData',x1,'YData',y1);

       pause(0.1);

   end

end

В результате, например, необходимо получить анимацию построения следующих графиков

Общая постановка задания лабораторной работы

1. Выполнить развертку и свертку аналитического выражения.

Ввести выражение f1 (x).

Вывести в командное окно выражение f1 (x) в естественном виде (команда pretty).

Развернуть выражение f1 (x).

Полученное выражение свернуть.

Сравнить результат c f1(x).

2. Выполнить дифференцирование и интегрирование аналитическое выражение.

Ввести выражение f1 (x) и найти производную по х.

Вывести в командное окно выражение f1 (x) в естественном виде (команда pretty).

Для полученного выражения найти неопределенный интеграл.

Сравнить с f1 (x).

3. Разложить в ряд Тейлора функцию, заданную аналитическим выражением.

Ввести выражение f2(x) и найти его разложение в ряд Тейлора.

Построить XY график для f2(x) и его разложения в ряд Тейлора F2(x).

4. Работа с командой funtool

Задать функцию f1 и выполнить с ней операции задачи 2.

Задать функцию f2 и выполнить с ней операцию символьного дифференцирования.

5. Исследование скорости роста символьной функции, описывающей некоторые параметры модели объекта в точке X0=0  и в диапазоне [X0-1,X0+1].

Необходимо написать следующие файл-функции:

а) файл-функция, входными аргументами которой являются:

-  строка с символьным представлением функции f1(x) одной переменной х,

- числовое значение абсциссы точки, в которой следует провести касательную.

б) файл-функция анимации процесса построения касательной в точках диапазона

[X0-1,X0+1].

Список индивидуальных данных

Варианты:

Для всех вариантов: a=4, b=5.

f1(x)

f2(x)

1

(1+x)2

ax3+bx2+cx+d

2

(1-х)2

sin(ax)

3

(а+х)2

cos(ax)

4

(а-х)2

sec(x)

5

(1+х)3

exp(ax)

6

(1-х)3

x(ln(x)-1)

7

(а+х)3

-csec(x)

8

(а-х)З

1/(1+x2)

9

(1+x)4

1/(a+bx)

10

(1-х)4

1/(1-x2)

Лабораторная работа № 2. Компьютерное моделирование процессов финансового рынка

Теоретическая часть. Общая постановка задачи. Пример выполнения работы

Работа с ордерами в информационно-торговой системе

Открытие позиции и установка отложенных ордеров

Открытие позиции или установка отложенного ордера может быть произведено несколькими способами:

  •  меню Сервис-Новый Ордер (Tools -> New Order) или F9;
  •  двойным щелчком мыши на курсе валют в окне котировок;
  •  нажатием правой кнопки на окне торгового терминала, вкладка Торговля (Trade), и выбор в появившемся контекстном меню пункта Новый Ордер (New Order).

Затем появляется диалоговое окно, с помощью которого можно открыть позицию или установить отложенный ордер:

Вы можете выбрать инструмент (поле Символ (Symbol) или количество лотов (поле Лоты (Lots). Количество лотов может быть дробным числом с шагом 0.1, но не меньше минимально допустимого контракта. При нажатии на кнопку Запрос (Request) вы получите котировки для совершения сделки:

Кнопки Купить (Buy) и Продать (Sell) стали активными. По правой котировке можно "купить" (Buy), а по левой котировке - "продать" (Sell). На рынке FOREX под словом "купить" подразумевается покупка валюты, которая стоит в аббревиатуре инструмента первой и продажа второй валюты. Под "продажей" понимается продажа валюты, стоящей в аббревиатуре инструмента первой и покупка валюты, стоящей второй. Предложенные котировки будут активны всего несколько секунд (счетчик оставшихся секунд расположен чуть выше окошка с котировками). Если в течение этого промежутка времени не было принято решение о сделки, то кнопки Купить (Buy) и Продать (Sell) снова станут неактивными. После совершения сделки появится открытая позиция в окне торгового терминала.

Если текущие рыночные цены вас не удовлетворяют, вы можете установить отложенный ордер.

Отложенный ордер - это приказ при достижении рынком определенной цены купить или продать по этой цене определенное количество лотов. Для установки отложенного ордера вы должны заполнить поля Type (тип ордера), at price (цена ордера), Symbol (инструмент) и Lots (количество лотов).

Правила установки отложенных ордеров:

Далее нажмите кнопку Отправить (Send). В случае успешной установки отложенного ордера информация о нем появится в окне торгового терминала. В случае неправильных действий по установке отложенного ордера появится сообщение Неправильная Цена (Invalid Price). Это говорит о том, что вы или пытаетесь выставить ордер слишком близко к текущей цене (ближе, чем величина спрэда по данному инструменту), либо неверно выбрали тип ордера (Buy Limit, Buy Stop, Sell Limit, Sell Stop). В качестве разделителя дробной части используйте ТОЧКУ, а не запятую. И в случае открытия позиции, и в случае установки отложенного ордера вы можете сразу же выставить значения Ограничение убытков (Stop Loss) и Ограничение прибыли (Take Profit) для ордера. Это вы можете осуществить путем заполнения полей Stop Loss и/или Take Profit (перед нажатием кнопки Запрос (Request) или Отправить (Send)).

Изменить уровень отложенного ордера вы можете несколькими способами:

  •  нажатием правой кнопки мыши на окне торгового терминала (закладка Торговля (Trade)) вызовите контекстное меню и выберите в нем пункт Изменить или удалить ордер (Modify or Delete Order);
  •  дважды щелкните мышью на отложенном ордере в окне торгового терминала.

В этом случае появится окно:

Установите в поле Цена (Price) новый уровень ордера и нажмите кнопку Изменить (Modify).

Закрытие позиции и удаление отложенных ордеров

Чтобы закрыть позицию дважды щелкните мышкой по открытой позиции в окне торгового терминала. Появится окно:

Если вы просто хотите закрыть позицию по текущей цене, нажмите кнопку Запрос (Request). Через несколько секунд появится цена, по которой можно полностью или частично закрыть позицию:

Использование советников (Expert Advisors)

Для автоматического открытия ордеров и их закрытия можно использовать советников (Expert Advisors), которые следует размещать в папке «C:\Program Files\MetaTrader 4\experts». Советник выполняется каждый раз при появлении новой котировки в системе (при каждом тике). Для подключения советника к графику следует выполнить двойной щелчок по имени советника в окне Навигатора.

В качестве примера рассмотрим советника, который открывает ордера Buy и Sell в определенные моменты времени:

//+------------------------------------------------------------------+

//   lab6.mq4 Открытие ордеров в определенные моменты времени

//+------------------------------------------------------------------+

// #property

// #property

extern double Lots0=1;

extern int Slippage0=3;

int PrevBarTime=0,OpenNewOrder=0,StopLoss0=40,Profit0=80;

int start()

{

double Price1,StopLoss1,TakeProfit1;

int Ticket1;

//Alert(Symbol(),"Проверка1", " Time=",Time[0], " PrevBarTime=",PrevBarTime);

 if (PrevBarTime != Time[0]) // обнаружена новая завершенная свечка

 {  

  PrevBarTime = Time[0];

   //Alert(Symbol(),"ПРОВЕРКА2", " Time=",Time[0], " PrevBarTime=",PrevBarTime);

  // здесь, когда на графике появилась новая законченная свечка

  OpenNewOrder=0;

/*   if (Minute() >= 0 && Minute() <60 )

  {  //условие открытия ордера Buy

      OpenNewOrder=1;

  }

*/   if (Minute() >= 0 && Minute() < 5 || Minute() >= 30 && Minute() < 35)

  {  //условие открытия ордера Buy

      OpenNewOrder=1;

  }

  if (Minute() >= 15 && Minute() < 20 || Minute() >= 45 && Minute() < 50)

  {  //условие открытия ордера Sell

      OpenNewOrder=2;

  }

} // if PrevBarTime <> Time

 //Alert(Symbol(),"Проверка3", " OpenNewOrder=",OpenNewOrder);

 // ----------------------------------------------------------

// откроем рыночный ордер Buy

 if (OpenNewOrder==1)

 {

   Alert(Symbol(),"Проверка5", " OpenNewOrder=",OpenNewOrder," ",Lots0);

      //до новой свечки не открываемся

      OpenNewOrder=0;

   Price1=Ask;

   StopLoss1=Price1-StopLoss0*Point;

   TakeProfit1=Price1+Profit0*Point;

   Ticket1=OrderSend(Symbol(),OP_BUY,Lots0,Price1,Slippage0,

             StopLoss1,TakeProfit1,NULL,0,0,Blue);  // исполняем

             

        if(Ticket1>0)

        {

           if(OrderSelect(Ticket1,SELECT_BY_TICKET,MODE_TRADES))

              Print("BUY order opened : ",OrderOpenPrice());

        }

        else Print("Error opening BUY order : ",GetLastError());

   return(0);

 } // if OpenNewOrder=1

// ----------------------------------------------------------

// откроем рыночный ордер Sell

 if (OpenNewOrder==2)

 {  

   Alert(Symbol(),"Проверка5", " OpenNewOrder=",OpenNewOrder," ",Lots0);

      //до новой свечки не открываемся

      OpenNewOrder=0;

   Price1=Bid;

   StopLoss1=Price1+StopLoss0*Point;

   TakeProfit1=Price1-Profit0*Point;

   Ticket1=OrderSend(Symbol(),OP_SELL,Lots0,Price1,Slippage0,

             StopLoss1,TakeProfit1,NULL,0,0,Red);  // исполняем

        if(Ticket1>0)

        {

           if(OrderSelect(Ticket1,SELECT_BY_TICKET,MODE_TRADES))

              Print("Sell order opened : ",OrderOpenPrice());

        }

        else Print("Error opening Sell order : ",GetLastError());

   return(0);

 } // if OpenNewOrder=2

return(0);

}

//+------------------------------------------------------------------+

Текст этого советника следует сохранить в файле «C:\Program Files\MetaTrader 4\experts\lab6.mq4» при выполнении задания 6 и 7.

 Для внесения изменений в советник следует выполнить следующие действия:

  1.  выполнить щелчок правой кнопкой мыши по имени советника в окне Навигатора,
  2.  в открывшемся окне Редактора можно вносить изменения в текст программы.

После внесения изменений в советник его текст необходимо откомпилировать средствами редактора.

Для вывода отладочной информации на экран рекомендуется использовать команду alert(“текст”).

При выполнении задания 8 – создание механической торговой системы (советника) на основе использования индикаторов скользящей средней (iMA) с периодами 7 и 34 рекомендуется использовать следующие фрагменты текста советника:

Для облегчения кодирования и ускорения доступа применяется предварительное помещение данных во внутренние переменные.

  Ma7Current=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

  Ma7Previous=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,2);

  Ma34Current=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0);

  Ma34Previous=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,2);

Теперь вместо записи iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0) в тексте программы можно использовать Ma7Current.

Сначала выполняется проверка торгового терминала – пустой ли? Если да, то: В эксперте используем только позиции, открытые по рыночной цене и не трогаем отложенные ордеры. Но для безопасности лучше внесем проверку торгового терминала на наличие выставленных ордеров:

// теперь надо определиться - в каком состоянии торговый терминал?

// проверим, есть ли ранее открытые позиции или ордеры?

  total=OrdersTotal();

  if(total<1)

    {

Далее следует проверка возможности встать в длинную позицию (BUY).

Условие входа в длинную позицию: 

- текущее значение скользящей средней MA7Current больше предыдущего значения MA7Previous,

- для текущих значений скользящих средних выполняется условие: iMA7 больше iMA34,

- для предыдущих значений скользящих средних выполняется условие: iMA7 меньше iMA34.

Это условие можно записать следующим образом (обратите внимание, что работа идет с сохраненными ранее в переменных значениями индикаторов):

// проверяем на возможность встать в длинную позицию (BUY)

     if( Ma7Current > Ma7Previous &&

         Ma7Current > Ma34Current  &&

         Ma7Previous < МА34Previous )

       { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,

                         Ask+TakeProfit*Point,"macd sample",

                         16384,0,Green);

        if(ticket>0)

          { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

              Print("BUY order opened : ",OrderOpenPrice());

          }

        else Print("Error opening BUY order : ",GetLastError());

        return(0);

       }

Условие входа в короткую позицию SELL: 

- текущее значение скользящей средней MA7Current меньше предыдущего значения MA7Previous,

- для текущих значений скользящих средних выполняется условие: iMA7 меньше iMA34,

- для предыдущих значений скользящих средних выполняется условие: iMA7 больше iMA34.

     // проверяем на возможность встать в короткую позицию (SELL)

     if( Ma7Current < Ma7Previous &&

         Ma7Current < Ma34Current  &&

         Ma7Previous > МА34Previous )

       { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,

                         Bid-TakeProfit*Point,"macd sample",

                         16384,0,Red);

          if(ticket>0)

          { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

              Print("SELL order opened : ",OrderOpenPrice());

          }

        else Print("Error opening SELL order : ",GetLastError());

        return(0);

       }

Портфельный анализ рисковых активов в MatLab

Основные функции портфельного анализа основаны на моделях Марковица и Тобина и их модификациях.

В простейшем случае поиск наилучшего портфеля состоит из двух шагов:

- построение эффективной границы Марковича с использованием функции frontcon или portopt 

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

Описание указанных функций приведено в файле «ЛР6 Портфель ценных бумагMatLab.pdf».

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

Вначале она содержит команды для формирования исходных данных рисковых активов. Далее с помощью функции находится эффективная граница Марковича и задаются общие значения для безрисковых ставок вложения и заимствования.

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

%Ожидаемые доходности активов

A_yld =   [0.108  0.136  0.144   0.151  0.187  0.191];

%Среднеквадратические отклонения активов

A_dev =   [0.12     0.135       0.15  0.18  0.20  0.205];

%Матрица коэффициентов корреляции

A_corr = [1   0.32  0.4   -0.3   0.31   -0.18;

0.32       1            0.45         0.43       0.29         0.3;

0.4       0.45         1              0.4         0.46        -0.29;

-0.3     0.43       0.4              1           0.41         0.4;

0.31     0.29       0.46         0.41           1          0.25;

-0.18       0.3       -0.29       0.4         0.25           1];

 % вычисление матрица ковариаций активов

A_cov = corr2cov(A_dev,   A_corr);

%нахождение эффективной границы

[P_Risk, P_Ret, P_Ass] = portopt(A_yld, A_cov, 25)

%Процентные ставки безрисковых активов

R_FreeAsset = 0.095;

R_Borrow    = 0.13;

% Оптимальный портфель инвестора

% с высоким уровнем неприятия риска

Index_Risk = 7;

[TP_Risk1, TP_Ret1, TP_Ass1, R_Fraction1, ... 

OP_Risk1, OP_Ret1] = portalloc(P_Risk, P_Ret, P_Ass, ... 

R_FreeAsset, R_Borrow , Index_Risk)

portalloc(P_Risk, P_Ret, P_Ass, ... 

R_FreeAsset, R_Borrow, Index_Risk);

% Оптимальный портфель инвестора

% с низким уровнем неприятия риска

Index_Risk = 2;

[TP_Risk2,   TP_Ret2,   TP_Ass2,   R_Fraction2,   ...

OP_Risk2,   OP_Ret2]   = portalloc(P_Risk,   P_Ret,   P_Ass,   ...

R_FreeAsset, R_Borrow , Index_Risk)

portalloc(P_Risk, P_Ret, P_Ass, ...

R_FreeAsset, R_Borrow, Index_Risk);

% Оптимальный портфель инвестора

% со среднем уровнем неприятия риска

Index_Risk = 3;

[TP_Risk3, TP_Ret3, TP_Ass3, R_Fraction3, ... 

OP_Risk3, OP_Ret3] = portalloc(P_Risk, P_Ret, P_Ass, ... 

R_FreeAsset, R_Borrow, Index_Risk)

portalloc(P_Risk, P_Ret, P_Ass, ... 

R_FreeAsset, R_Borrow, Index_Risk);

 В результате выполнения файл-программы будут созданы следующие графики:

   

Оптимальные портфели для разных уровней неприятия риска имеют следующую структуру:

TP_Risk1 =    0.1078

TP_Ret1 =    0.1683

TP_Ass1 =    0.0072   -0.0000    0.4636   -0.0000    0.0905    0.4387

TP_Risk2 =    0.1298

TP_Ret2 =    0.1789

TP_Ass2 =         0   -0.0000    0.2340   -0.0000    0.2870    0.4790

TP_Risk3 =    0.1284

TP_Ret3 =    0.1783

TP_Ass3 =         0   -0.0000    0.2461   -0.0000    0.2769    0.4770

Общая постановка задания лабораторной работы

Задачи:

1. Настроить четыре окна торгового терминала, отображающие изменение цены основных валютных пар, следующим образом:

- период – 5 мин.,

- сетку убрать,

- показать объемы,

- фон белый,

- линии черные,

- тип графиков – японские свечи: бычья– белая, медвежья – синяя,

- фиксировать масштаб.

2. Отобразить в окнах следующие индикаторы:

- экспоненциальная скользящая средняя MA  - период Р1, применить к Close, цвет красный,

- экспоненциальная скользящая средняя MA  - период Р2, применить к Close, цвет темно-синий.

3. Открыть рыночные ордера по четырем основным валютным парам объемом 1 лот с ограничением потерь на Х1 пунктов и ограничением прибыли на Y1 пунктов.

4. Открыть отложенный ордер по четырем основным валютным парам объемом 1 лот, из них два ордера - типа Z1 и два ордера – типа Z2, по цене на Х2 пунктов отличающейся от рыночной цены с ограничением потерь на Х1 пунктов и ограничением прибыли на Y1 пунктов.

5. В конце занятия (за 20 минут) закрыть все открытые ордера.

6. Подключить программу, моделирующую работу механической торговой системы (МТС) – lab6.mq4.

7. Изменить время автоматического открытия ордеров при работе МТС lab6.mq4, в соответствии с заданием варианта.

8. Разработать модель механической торговой системы (советника) на основе использования индикаторов скользящей средней (iMA) с периодами 7 и 34 (см. теоретическую часть).

9. Построить оптимальный портфель на основании 6 рисковых активов. Значения их доходности зависят от варианта, а риск каждого актива и коэффициенты корреляции считаются одинаковыми для всех вариантов (данные значения следует взять в выше приведенном примере). Получить графики и распределение акций для инвестора со средним уровнем неприятия риска.

Написать файл-функции для решения задачи 9.

Параметры заданий указаны для каждого варианта.

Список индивидуальных данных

Варианты:

Вариант

P1

P2

X1

Y1

Z1

Z2

X2

1.

10

14

15

40

Buy Limit

Sell Stop

20

2.

11

15

20

45

Buy Stop

Sell Limit

20

3.

12

16

25

50

Buy Stop

Sell Limit

20

4.

9

20

15

55

Sell Limit

Buy Stop

20

5.

10

21

20

60

Sell Stop

Buy Limit

20

6.

9

14

15

40

Buy Limit

Sell Stop

20

7.

12

16

30

80

Buy Stop

Sell Limit

20

8.

9

20

15

55

Sell Limit

Buy Stop

20

9.

10

21

20

60

Sell Stop

Buy Limit

20

10.

12

14

20

50

Buy Limit

Sell Stop

20

Варианты заданий для МТС – время автоматического открытия ордеров в течение каждого часа

Вариант

Ордер Buy открыть в _____ минут

Ордер Sell открыть в _____ минут

1.

15

25

2.

10

40

3.

30

45

4.

5

25

5.

10

30

6.

25

40

7.

15

40

8.

10

20

9.

30

5

10.

50

10

В следующей таблице указаны номера ценных бумаг, соответствующих заданию каждого из вариантов.

Вариант

Номера ценных бумаг в ниже следующем списке

1.

2,5,8,10,15,20

2.

4,6,9,12,21,25

3.

5,7,14,17,22,24

4.

3,4,7,9,17,18

5.

7,9,12,16,19,22

6.

2,7,11,15,18,21

7.

5,8,10,18,19,25

8.

7,9,10,14,17,22

9.

2,5,9,14,16,17

10.

10,12,15,19,23,24

Значения доходности некоторых ценных бумаг (поле Change)

 

Symbol

Name

Last Trade

Change

Volume

Related Info

1

AVNX

AVANEX CORP

2.66 9:37AM ET

0.36 (15.65%)

12,033,223

Chart, Profile, More

2

SIRI

SIRIUS SATELLITE R

4.57 9:37AM ET

 0.03 (0.65%)

11,723,337

Chart, Profile, More

3

QQQQ

NASDAQ 100 TR SER I

40.74 9:37AM ET

0.06 (0.15%)

4,680,946

Chart, Profile, More

4

CMVT

COMVERSE TECH INC

26.37 9:37AM ET

 2.78 (9.54%)

3,711,035

Chart, Profile, More

5

INTC

INTEL CP

19.81 9:37AM ET

0.08 (0.41%)

3,477,663

Chart, Profile, More

6

HGSI

HUMAN GENOME SCI

12.52 9:37AM ET

 1.15 (8.41%)

3,407,284

Chart, Profile, More

7

FNSR

FINISAR CORP

4.93 9:37AM ET

0.09 (1.86%)

2,458,965

Chart, Profile, More

8

SUNW

SUN MICROSYS INC

4.57 9:37AM ET

0.03 (0.66%)

2,088,047

Chart, Profile, More

9

CSCO

CISCO SYS INC

20.89 9:37AM ET

0.03 (0.14%)

2,054,468

Chart, Profile, More

10

ORCL

ORACLE CORP

12.9099 9:37AM ET

0.0099 (0.08%)

1,959,198

Chart, Profile, More

11

MSFT

MICROSOFT CP

27.14 9:37AM ET

0.03 (0.11%)

1,778,924

Chart, Profile, More

12

SONS

SONUS NETWORKS INC

5.11 9:37AM ET

 0.31 (5.72%)

1,579,324

Chart, Profile, More

13

NVAX

NOVAVAX INC

6.429 9:37AM ET

0.289 (4.71%)

1,520,522

Chart, Profile, More

14

JDSU

JDS UNIPHASE CP

3.7112 9:37AM ET

0.0012 (0.03%)

1,331,898

Chart, Profile, More

15

AAPL

APPLE COMPUTER

65.89 9:37AM ET

0.21 (0.32%)

1,081,844

Chart, Profile, More

16

GNBT

GENEREX BIOTECH CORP

2.25 9:37AM ET

0.07 (3.21%)

995,837

Chart, Profile, More

17

YHOO

YAHOO INC

30.43 9:37AM ET

0.28 (0.93%)

885,651

Chart, Profile, More

18

JNPR

JUNIPER NETWORKS

19.34 9:37AM ET

0.39 (2.06%)

892,814

Chart, Profile, More

19

GOOG

GOOGLE

338.48 9:37AM ET

1.42 (0.42%)

806,687

Chart, Profile, More

20

TOPT

TOP TANKERS INC

16.93 9:37AM ET

0.27 (1.62%)

708,77

Chart, Profile, More

21

ADRX

ANDRX GROUP

23.94 9:37AM ET

0.21 (0.88%)

708,04

Chart, Profile, More

22

NMTI

NMT MEDICAL INC

14.08 9:37AM ET

0.04 (0.28%)

682,108

Chart, Profile, More

23

AMAT

APPLIED MATERIALS

18.07 9:37AM ET

0.14 (0.78%)

672,766

Chart, Profile, More

24

DELL

DELL INC

29.30 9:37AM ET

0.04 (0.14%)

626,686

Chart, Profile, More

25

CMCSA

COMCAST CP A

26.29 9:37AM ET

0.19 (0.73%)

579,147

Chart, Profile, More

Лабораторная работа № 3. Компьютерное моделирование физических процессов

Теоретическая часть. Общая постановка задачи. Пример выполнения работы

Материалы для заданий 1, 2

Потери пучка при прохождении через вещество

В этой работе можно познакомиться с основным методом моделирования, применяемым при исследовании прохождения пучков частиц через вещество — методом статистического моделирования (называемым методом Монте-Карло). При этом «судьба» каждой частицы «разыгрывается» с помощью случайного выбора, а полученные для множества частиц результаты подвергаются статистической обработке. Метод применяется, например, при проектировании ядерных реакторов, детекторов частиц на ускорителях и обработке получаемых результатов (а также во многих других случаях, скажем, при исследовании распространения мутаций в среде живых организмов).

Мы будем изучать, естественно, очень простой вариант задачи — прохождение пучка тяжелых частиц (A) через слой газа, состоящего из легких частиц (O). К тому же будем полагать скорости частиц газа до столкновения с частицами пучка равными нулю. Не будем также учитывать изменений, происходящих в газе вследствие прохождения пучка. Это не ограничивает существенно общности задачи.

1. Эффективные сечения

Частицы можно представлять шариками радиусов Ra и Ro. Пусть частица A летит так, что центр ее должен пролететь на расстоянии ρ от центра частицы O. Столкновение произойдет, если ρ < R, где R = Ra + RO. Фактически частица О образует для частиц A «преграду», площадь которой σ = πR2 . Эта величина называется эффективным сечением столкновения . В зависимости от величины р (называемой прицельным параметром) определяются угол отклонения, передача энергии от частицы A частице O и т.п. Соответственно можно определить величины эффективных сечений, например, для потери частицей A определенной энергии от ε1 до ε2, отклонения на угол, больший данного и т.п. Определяются и дифференциальные эффективные сечения, например, дифференциальное эффективное сечение потери энергии частицей A

определяется так, что величина площадки  = f(ε) отвечает потере энергии в интервале от ε до ε +  (при достаточно малой величине ).

Характерные размеры пучка частиц — сантиметры или даже микроны — во много раз превосходят характерные прицельные параметры. Именно поэтому здесь уместен статистический подход. Пусть концентрация газа-мишени составляет nO частиц O на 1 см3 . Тогда в очень тонком слое (толщины dx ) на площадь S приходится nOS dx частиц O, а перекрываемая ими площадь равна dS = σnOSdx. Можно сказать также, что dW = dS/S = σnOdx представляет долю площади, перекрытую частицами O в слое dx. Иначе говоря, это вероятность столкновения частицы в данном слое. Имея в виду возможность выбрать достаточно тонкий слой, мы можем пренебречь возможностью, что какая-то из частиц O будет «затенена» другими. Фактически для этого достаточно условия dW <C 1.

(Для столкновений атомов характерные величины эффективных сечений имеют порядок 10 см2 , для нейтронов и атомных ядер — 10 см2 , на современных ускорителях изучаются сечения еще на 10 - 12 порядков меньшие.)

2. Потери частиц пучка при прохождении слоя

Начнем с простейшей задачи о выбывании частиц из пучка. Пусть любое столкновение ведет к выбыванию частицы — сечение выбывания равно σ . Задача об ослаблении пучка легко решается в таком случае аналитически. Пусть количество частиц A в исходном пучке равно Na0 . После прохождения слоя dx это число уменьшится на dNA = NAdW. Введя число частиц, оставшихся в пучке, Na(x), имеем

dNA(x) = −NA(x)nOσdx.                  (1)

Решение этого дифференциального уравнения, удовлетворяющее условию , т.е.

                               (2)

где b = nOσ. Величина 1/b определяет толщину слоя, в котором пучок потеряет значительное число частиц (ослабнет в e =2.7 раза). Приведенное решение задачи относится к средним значениям числа частиц.

Теперь покажем, как решается эта задача методом Монте-Карло. Будем «пропускать» частицу через тонкие слои толщиной dx, пока она не пройдет слой x (или поглотится). «Розыгрыш» для слоя dx состоит в том, что мы выбираем случайное число с равномерным распределением от 0 до 1 (функция rand в MATLAB) и сравниваем с величиной dW; если rand< dW, то частица выбывает, в противном случае перемещается в следующий слой. Пропустив Na частиц через слой толщины x, мы можем получить число оставшихся частиц Na(x).

Приведем отрезок программы, в котором через слой толщины Xmax «пропускается» Na частиц. При реализации этой части программы предполагается, что для всех частиц заведены два вектора - вектор координат, достигнутых каждой из частицей к текущему моменту времени, и вектор состоящий из 0 и 1. Каждая 1 соответствует еще не выбывшей частице, а 0 - уже выбывшей из потока.

Следующая программа описывает моделирование выбывания частиц из пучка (листинг А).

% Программа расчета потерь пучка %

%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;

Na=250; k=(1:Na)'; no=100; SecA=0.05; dx=0.01;

x=zeros(size(k)); % Начальный вектор координат

sc=ones(size(k)); % Начальный вектор-счетчик

dW=no*SecA*dx;          % Вероятность поглощения на шаге dx
hl=line(x,k); % Подготовка Na точек для рисования

set(hl, 'Marker', 'o', 'MarkerSize',3);
axis([0 1 0 Na+1]);          % Масштабирование осей
pause; % Пауза перед запуском основного цикла

% Далее выполняется цикл, на каждом шаге которого

% координата x возрастает на dx до тех пор, пока

% частица не пройдет путь Xmax или не поглотится

while (any(sc)> 0)

 ra=rand(size(k)); % Расчет вероятностей с помощью

% датчика случайных чисел для

% всех частиц

 k1=find(ra-dW< 0);       % Определение номеров частиц

% подлежащих отбраковке

 sc(k1)=0; % Зануление счетчика отбракованной частицы

 x=x+sc*dx; % Продвижение на dx остальных частиц

 set(hl,'XData',x); % Рисование

end; % Конец цикла while

%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

Число частиц Nf, прошедших через достаточно толстый слой, оказывается малым и сильно флуктуирует (изменяется от запуска к запуску). Распределение вероятностей для доли прошедших частиц p = Nf/Naэто распределение Бернулли.

3. Превращение частиц пучка при прохождении слоя

Подобным же образом моделируются более сложные процессы. Пусть, например, при столкновении с частицей газа частица пучка A может не только поглотиться, но и превратиться в частицу B, летящую в том же направлении, причем эффективное сечение такого превращения равно σAB, а эффективное сечение поглощения частиц A равно σA .

Приведем участок программы, моделирующей «судьбу» частиц в этом случае (листинг B).

% Моделирующая часть программы с поглощением A   %
% и превращением A -> B %

% SecA - сечение поглощения A

% SecAB - сечение превращения A в B

% scA - счетчик числа частиц типа A

% scB - счетчик числа частиц типа B

clear; % Очистка рабочей области

Na=25; % Начальное число частиц A

L=5; k=(1:Na)'; no=100;dx=0.01; SecA=0.1; SecAB=0.15;

x=zeros(size(k)); % Начальный вектор координат

scA=ones(size(k)); % Вектор-счетчик частиц A

scB=zeros(size(k)); % Вектор-счетчик частиц B

dWa=no*dx*SecA; % Вероятность поглощения A на шаге dX

dWab=no*dx*SecAB;        % Вероятность A -> B на шаге dX

% Имитация поглощения и превращения частиц

% Пока есть частицы A и не пройден путь L

while (any(scA)> 0 & all(x)< L) ra=rand(size(k));

 ka=find(ra-dWa< 0);       % Номера поглощенных частиц A
 
scA(ka)=0; % Выбывание частиц типа A

 kb=find(dWa< ra & ra< dWa+dWab)

 scB(kb)=scA(kb);          % Превращение A в B
 
scA(kb)=0; % Исчезновение этих A

 x=x+scA*dx+scB*dx;

 pause(1);

end;

Для подобной модели несложно также составить и решить уравнения, описывающие изменения среднего числа частиц A и B, подобно уравнениям (1), (2).

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

Материалы для задания 3

Метод Монте-Карло при нахождении значения определенного интеграла

Во многих исследованиях для построения модели некоторого физического процесса необходимо решать задачи нахождения значений определенных интегралов. Рассмотрим метод статистических испытаний (метод Монте-Карло) для решения указанной задачи.

Рассмотрим метод Монте-Карло применительно к задаче нахождения значения определенного интеграла

.

Используем известный факт, что для нахождения значения определенного интеграла необходимо найти площадь криволинейной трапеции, ограниченной отрезком [a,b] оси OX и графиком функции f(x) на этом отрезке.

Для простоты изложения пусть известна аналитическая запись подынтегральной функции f(x) и задан интервал интегрирования [a,b].

Решение задачи состоит в следующем:

на основании равномерного распределения  случайных величин (например, функция rand в MatLab) случайным образом выбираем координаты точки (x,y),

где

Если

,

то данная точка (x,y) вносит вклад в значение определенного интеграла (такие точки образуют множество M1).

Если

,

то точка (x,y) не засчитывается при нахождении значения определенного интеграла (такие точки образуют множество M2).

Следовательно, множество M1 образуют точки, находящиеся ниже графика функции f(x), множество M2 образуют точки, находящиеся выше графика функции f(x).

Обозначим, S1 – площадь криволинейной трапеции, т.е. площадь фигуры, расположенной ниже графика f(x), S2 – площадь фигуры, расположенной над графиком функции f(x).

Рис. 1. Фигуры S1 и S2, ограниченные графиком функции f(x)

Пусть после проведения серии N испытаний в множестве M1 имеем N1 точек, а в множестве M2 имеем N2 точек.

Тогда, отношение площадей фигур S1 и S2 и отношение количества точек N1 и N2 связаны следующим равенством .

Сумма площадей S1 и S2 равняется площади прямоугольника S0 со сторонами (b-a) и  ymax.

Следовательно, так как

и

, то ,   ,   .(3)

Формула (3) позволяет находить значение определенного интеграла методом Монте-Карло.

Материалы для задания 4

Маятник

Задачи о колебаниях встречаются во всех областях физики. Во многом колебания совершенно различных физических объектов сходны друг с другом. Простейшие примеры — малые колебания маятника и электрические колебания в цепи, составленной из конденсатора и катушки.

Такое движение маятника хорошо известно — это гармонические колебания. Закон движения можно записать в виде x = acos(ω0t +0), где ω0 – частота колебаний, a — амплитуда, 0  — начальная фаза. (Угол отклонения маятника мы обозначили здесь x). Малые колебания описываются уравнением

линейным относительно функции x, поэтому их обычно называют линейными.

В этом задании будем исследовать движение математического маятника при больших углах отклонения.

Свободные колебания

Результаты исследования движения маятника удобно представить в виде набора кривых на плоскости (x,p), где x - угол отклонения маятника, p = скорость изменения угла.

Плоскость (x,p) называется фазовой плоскостью, переменная p — импульсом, а кривые, определяемые параметрически законом движения как x = x(t), p = p(t), — фазовыми траекториями.

Фазовая траектория определяется, например, начальными значениями координаты x(0) и импульса p(0).

Фазовые траектории линейного осциллятора представляют собой эллипсы, задаваемые законом сохранения энергии. Для математического маятника это справедливо при малых углах отклонения, в общем же случае, при больших значениях углов отклонения движение математического маятника будет более сложным. Кроме колебаний возможно вращение маятника в ту или другую сторону.

Угол отклонения маятника достаточно задавать в некоторых конечных пределах, например, принимая − π ≤ x < π.

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

При некоторой энергии колебания сменяются вращением.

Свободное движение математического маятника без трения описывается дифференциальным уравнением

       (4)

Имеется аналитическое решение этого уравнения (довольно сложное), однако мы будем исследовать движение маятника численно.

Запишем это дифференциальное уравнение в виде системы уравнений первого порядка

,

.    (5)

Основная идея численного расчета чрезвычайно проста (метод Эйлера): зная значения координаты и скорости в момент времени t, можно приближенно найти их значения через малый промежуток ∆t

,

,

взяв значения величин х и р из уравнений (5). Многократно повторяя такие вычисления, можно найти зависимости x(t) и p(t). Большей точности можно достигнуть, практически не усложняя расчеты, если использовать так называемую вычислительную схему с перешагиванием. В этой схеме вычисляются значения координат в моменты времени

t−1/2∆t,     t + 1/2∆t,     t + 3/2∆t,     t + 5/2∆t,...,

а значения скоростей в моменты времени

t, t + ∆t,      t + 2∆t,      t + 3∆t,...

Данная вычислительная схема и использована в предлагаемой ниже программе.

Чтобы отклонение от точного решения уравнения (1) было небольшим, должен быть достаточно малым шаг по времени ∆t. Точность вычислений можно проверить, применяя метод повторного счета с уменьшенным шагом ∆t. Если при этом решение остается прежним, значит, шаг был выбран достаточно малым и можно быть уверенным в правильности результата.

Далее приводится текст простейшей программы на языке MATLAB.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Фазовая траектория математического маятника     %

clear; % Очистка рабочей области

% Задание начальных значений

x1=2.2; % Начальная координата

p1=0.0; % Начальный импульс

dt=0.025; % Шаг по времени

axis([-pi pi -pi pi]); % Задание диапазона осей

hl=line(x1,p1); % Задание дескриптора линии

% Задание параметров выводимой линии

% 'EraseMode',’none' - это режим вывода без стирания

% 'LineStyle',':'  - вывод линии в виде пунктира

% по умолчанию выводится сплошная линия

% 'Color',’r’      - задание цвета линии

set(hl,'EraseMode', 'none', 'LineStyle',':','Color', 'r');

grid on; % Задание вывода координатной сетки

pause; % Пауза, обеспечивает немедленный вывод

% рисунка на экран для продолжения программы
% необходимо нажать любую клавишу
while 1 % Бесконечный цикл

% Основной алгоритм расчета

x2=x1+p1*dt;

p2=p1-sin(x2)*dt;

% Склейка граничных условий

if x2> pi

x2=x2-2*pi; end; if x2< -pi

x2=x2+2*pi; end;

% Вывод очередного участка фазовой траектории

set(hl,'XData',x2,'YData',p2);

% Переприсвоение начальных значений

x1=x2;p1=p2;

end;

(Здесь шаг по времени ∆t обозначен dt, pi=π.)

Следует сделать несколько замечаний. После запуска программа откроет графическое окно и нарисует в нем одно окно с системой координат, осями и координатной сеткой, после чего перейдет в режим ожидания (команда pause). Для продолжения расчета необходимо нажать любую клавишу, и программа начнет вывод фазовой траектории. Поскольку используется бесконечный цикл, выполнение программы можно прервать клавишей Ctr+C. Для повторного прогона с другими параметрами необходимо ввести соответствующие изменения в текст программы и перезапустить ее.

Общая постановка задания лабораторной работы

Написать файл-функции для решения поставленных далее задач.

Задачи:

1. Построить модель прохождения частицами пучка некоторого слоя заданной ширины и имеющим заданное эффективное сечение поглощения, используя метод Монте-Карло. Условия выполнения приведены далее.

2. Построить модель (используя метод Монте-Карло) прохождения частицами пучка некоторого слоя заданной ширины и имеющим заданное эффективное сечение поглощения с учетом превращения частиц А пучка в частицы В (эффективное сечение превращения задано). Условия выполнения приведены далее.

В задачах 1 и 2 для каждого варианта определены следующие значения:

- ширина слоя Xmax,

- количество частиц в исходном пучке Na,

- ширина элементарного слоя dx,

- концентрация частиц слоя (преграды) no,

- эффективное сечение поглощения (A) SecA,

- эффективное сечение превращения (AB) SecB.

Используя текст листингов А и В, необходимо выполнить следующие задания:

- В задачах 1 и 2 необходимо визуализировать процесс прохождения частицами слоя и превращения частиц А пучка в частицы В.

- В задаче 2 необходимо визуализировать процесс превращения частиц А пучка в частицы В.

- Ширина слоя в задачах 1 и 2 не должна превышать величины Xmax.

3. Найти значение определенного интеграла методом Монте-Карло.

Построить график функции f(x) и отметить на графике «случайные» точки, образованные при решении.

4. Построить фазовую траекторию математического маятника. Визуализируйте процесс движения самого математического маятника.

Уменьшая шаг dt, убедитесь, что фазовая траектория воспроизводится при этом без изменений в течение нескольких периодов. Увеличивая шаг, достигните такой его величины, чтобы появилось явно видимое искажение формы фазовой траектории. Изобразите несколько разных фазовых траекторий.

Список индивидуальных данных

Варианты:

Значения переменных для задания 1, 2.

Вариант

Xmax

Na

dx

no

A

AB

1

4

30

0.01

100

0.05

0.1

2

5

40

0.01

100

0.07

0.08

3

6

45

0.01

100

0.08

0.17

4

7

35

0.01

100

0.09

0.15

5

8

30

0.01

100

0.1

0.2

6

7

35

0.01

100

0.05

0.15

7

6

40

0.01

100

0.1

0.25

8

5

30

0.01

100

0.07

0.3

9

4

45

0.01

100

0.01

0.15

10

7

35

0.01

100

0.15

0.2

Значения переменных для задания 3.

Для всех вариантов – количество испытаний N=2000.

Вариант

f(x)

a

b

ymax

1

sin(x)+2

0

3

max f(x) на [a,b]

2

cos(x)+3

1

5

max f(x) на [a,b]

3

x2-3x+10 

2

6

max f(x) на [a,b]

4

sin(2x)+1

3

7

max f(x) на [a,b]

5

cos(x/2)+5

0

4

max f(x) на [a,b]

6

5x2-8x+14 

1

3

max f(x) на [a,b]

7

sin(4x)+2

2

5

max f(x) на [a,b]

8

cos(x/3)+15

3

7

max f(x) на [a,b]

9

7x2-x+2 

1

5

max f(x) на [a,b]

10

sin(3x)+5

2

8

max f(x) на [a,b]

Значения переменных для задания 4.

Вариант

x1

Импульс p1

dt

1

3

5

0.02

2

2

1

0.02

3

2.5

1

0.02

4

3.1

0.1

0.02

5

3

0

0.02

6

2.5

7

0.02

7

0

3

0.02

8

1

4

0.02

9

0.5

5

0.02

10

3

0

0.02

Лабораторная работа № 4. Имитационное моделирование систем в MatLab Simulink. Проектирование оптимальной налоговой ставки на прибыль

Теоретическая часть. Общая постановка задачи. Пример выполнения работы

Определение проблемы, цель работы:

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

Проблема: теория и практика не знают величину приемлемой для всех налоговой ставки.

Задача: обосновать величину налоговой ставки.

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

Цель работы: исследовать зависимость поступлений в бюджет от величины налоговой ставки.

Пример разработки имитационной модели.

1. Уточнение и ограничение проблемы.

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

2. Выделение проблемной системы (объекты и функции)

Законодатель. Объявляет ставку налога.

Бюджет. Получает налоговые отчисления от прибыли предприятий.

Предприятия. По налоговой ставке на прибыль отчисляют средства в бюджет.

3. Построение словарной модели (описательная, дескриптивная, вербальная модель).

Государство объявляет ставку налога на прибыль и получает от фирм средства в бюджет. Фирмы обладают собственным капиталом, производят прибыль, отчисляют по налоговой ставке средства в бюджет. Постналоговая прибыль как нераспределенная прибыль полностью включается в собственный капитал фирмы. Дивиденды не выплачиваются, никаких других отчислений от прибыли не производится. Вся прибыль распределяется только на два потока: в бюджет, а остаток в собственный капитал.

4. Математическая модель.

Сумма налоговых поступлений от предприятий за моделируемый период накапливается на бюджетных счетах и представляется интегралом:

,

где BD(t) – сумма, поступивших в бюджет средств от начала моделирования к моменту t, руб.;

     PRF(t) – доналоговая прибыль (profit), получаемая предприятием в момент t, руб/год.;

    TXRT – ставка налога на прибыль (tax rate);

     t – текущее время, год.

     tb – начальный (begin) момент моделирования;

     tf -  последний (final) момент моделирования.

Капитализируемый предприятием за время моделирования остаток прибыли

Прибыль в момент t 

,

где RN – рентабельность капитала предприятия. Задается как параметр предприятия, исходное данное.

Компьютерная модель в программе Simulink

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

Вначале студент составляет модель из типовых элементов библиотеки на листе бумаги.

Первое действие - запустить Matlab. При этом возникает стартовое диалоговое окно, в котором расположены три встроенных окна: Command Window (командное) - справа, Launch Pad (Средства запуска) - в левом верхнем углу, Command Hustory (История команд) - в левом нижнем углу. Каждое подокно можно освободить из дока.

Для создания модели нужно выполнить действие File => New => Model. Это приводит к запуску программы Simulink, которая создает пустое окно модели.

Далее нужно вызвать браузер библиотеки компонент, используя команды меню View - Library Brouser или кнопку в панели инструментов Library Brouser. Окно браузера содержит две панели: слева иерархическое дерево библиотеки, справа - содержимое выбранной в левой панели папки с блоками. В папке могут быть подбиблиотеки и блоки. Каждый блок и подбиблиотека имеют визуальный семантический образ и надпись.

Разместите окна браузера и модели таким образом, чтобы они не перекрывали друг друга. Теперь можно формировать модель визуальным методом.

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

Соедините блоки коннекторами. Для этого нужно протаскивать мышь от одной соединяемой точки к другой. При отпускании кнопки мыши в модели отображается коннектор со стрелкой.

Установите для каждого блока свойства. Для этого нужно на блоке сделать двойной щелчок мышью, что приведет к появлению окна со свойствами блока. Установите нужные свойства в полях окна.

Пример построения исследуемой модели в Simulink

Окно модели для определения оптимальной ставки налогообложения прибыли предприятия представлено на следующем рисунке.

Создать на экране дисплея пустое окно модели и вызвать браузер библиотеки блоков.

На первом шаге построения модели следует разместить в окне все блоки модели.

На схеме левый блок с именем «Business» («Бизнес») представляет накопитель собственного капитала предприятия. Для его создания следует выполнить следующие действия. Выбрать в браузере папку Simulink. В ней открыть папку Discrete, используя кнопку подбиблиотеки Discrete (Дискретные). Из подбиблиотеки Discrete левой кнопкой мыши перетащить в окно модели блок Discrete Time Integrator (Интегратор дискретного времени) и там отпустить в удобном месте. Укажите новое название блока – Business.

Для блока «Business» в окне его свойств следует установить InitialCondition (Начальное условие) равное 1.

На вход блока «Business» («Бизнес») поступает поток капиталовложений CapF. Это постналоговая, нераспределенная прибыль. Она аккумулируется, бизнесом и увеличивает его собственный капитал. Выход блока – это величина капитала бизнеса CapS.

Справа от блока «Business» расположен блок умножения (с крестиком), он создает поток прибыли PrfF как произведение капитала предприятия на рентабельность Rntb. Блок умножения «Product» расположен в библиотеке «Math Operation».

Блок Rntb «Рентабельность» задается библиотечным блоком «Constant» («Константа») с именем Rntb. Блок «Constant» («Константа») расположен в библиотеке «Source» («Источники»). Для этого блока следует задать имя Rntb. Также необходимо указать имя переменной Rntb рабочей области, в которой задаются значения константы этого блока – в контекстном меню в окне команды ConstantParameters в текстовом поле ConstantValue (значение константы) следует ввести имя переменной Rntb. Для удобства построения в дальнейшем соединительных линий следует повернуть блок Rntb так, чтобы его выход располагался на верхней границе (контекстное меню – FormatRotateBlock).

Под блоком Rntb также следует задать как комментарий (двойной щелчок левой кнопкой мыши в соответствующей точке окна) информацию о векторе плана экспериментов по фактору рентабельности [0.2:0.2:0:8]. В матричной среде Matlab это означает, что мы начнем имитационные эксперименты для рентабельности равной 20% с шагом в 20% и последним экспериментом для 80%. Для автоматизации экспериментов константу рентабельности мы можем заменить на переменную и управлять ее значениями из программного файла Matlab.

Ниже блока рентабельности расположен блок Scope1 – это графопостроитель для отображения переменной капитала предприятия CapS. Выбрать в браузере папку Simulink. В ней открыть папку регистраторов Sinks (Регистраторы). Из библиотеки Sinks левой кнопкой мыши перетащить в окно модели блок Scope и там отпустить в удобном месте. Затем следует указать имя блока Scope1.

Двойным щелчком по блоку Scope в модели вызвать его демонстрационное окно. Разместить это окно на экране в удобном месте, перемещая его за заголовок левой кнопкой мыши.

Следующий блок умножения (с крестиком) создает поток отчислений от прибыли в госбюджет TxF как произведение потока прибыли на налоговую ставку TaxRate.

Ставка налога задается библиотечным блоком «Constant» («Константа») с именем TaxRate (см. блок Rntb). Новому блоку «Константа» следует присвоить имя TaxRate, указать имя связанной и ним переменной в рабочей среде – TaxRate (поле ConstantValue). Рекомендуется повернуть этот блок.

Под блоком TaxRate как комментарий задан вектор плана экспериментов по фактору налоговая ставка [0:0.1:1:0]. Это означает, что мы начнем имитационные эксперименты для ставки равной 0% с шагом в 10% и последним экспериментом для 100%. Для автоматизации экспериментов константу налоговой ставки мы можем заменить на переменную и управлять ее значениями из программного файла Matlab.

Блок «Budget» («Госбюджет») представлен Интегратором дискретного времени (см. блок «Business»). Он аккумулирует налоговые поступления TxF за период моделирования в виде переменной BdjS.

Справа от блока «Budget» блок Scope строит график накопления средств от налога в бюджете (см. блок Scope1). Обязательно необходимо открыть отдельное окно построения графиков для блока Scope (двойным щелчком) и в нем настроить ‘ScopeParameters (Параметры окна Scope – графопостроитель). Для этого в окне Scope следует нажать вторую кнопку на панели инструментов и на закладке DataHistory окна ‘ScopeParameters установить флажок «Save data to work space» («Сохранить данные в рабочую область») и задать имя переменной ScopeData и ее формат Array.

Блок Display отображает числовые значения переменной BdjS. Блок «Display» расположен в библиотеке «Sinks» (Регистраторы).

Круглый блок сумматора вверху модели вычисляет прибыль в распоряжении предприятия как разницу между доналоговой прибылью и частью прибыли отчисляемой по налоговой ставке в бюджет. Блок сумматора расположен в библиотеке «MathOperations». Рекомендуется повернуть блок. Затем двойным щелчком по блоку вызвать окно его свойств и в поле «List of signs» («Список знаков») указать список «|-+».

Далее следует построить все соединительные линии между блоками. Левой (или правой) кнопкой мыши соединить блоки. При нажатой левой кнопке курсор имеет форму крестика, который надо позиционировать по помеченным входам и выходам блоков. Начать надо с помеченного выхода одного блока и отпустить кнопку на помеченном входе другого. Входы регистратора соединять с узлами модели в которых действуют сигналы, указанные выше и в том же порядке.

Для ветвления соединительных линий следует использовать правую кнопку мыши.

Рядом с соединительными линиями рекомендуется указывать имена передаваемых величин (комментарии создаются двойным щелчком).

Обязательная настройка – указать параметры конфигурации модели с помощью команды Simulation-ConfigurationParameters. Так как модель дискретная, то в поле «Solver» необходимо выбрать «Discrete (no continuous states)».

Результат - модель системы и пустое окно регистратора.

Запуск процесса выполнения модели

Включить симулирование (моделирование) можно командой Simulation => Start (или кнопкой на панели инструментов модели). В окне Scope отображаются графики сигналов.

Исходные данные для параметров модели

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

В соответствующих блоках заполняются поля: InitialCondition (Начальное условие) для блока Интегратор и ConstantValue (значение константы) для блоков констант Rntb и TaxRate.

Средства контроля за экспериментом

Средства управления экспериментом – это диалоговые окна констант- факторов: ставки налога и рентабельности. Двойным щелчком мыши открываются окна и меняются значения факторов. Устанавливаются для предприятий различные ставки налогов и рентабельности, изменяется начальный капитал предприятий.

Средства отображения информации о показателях экспериметов – это графопостроители Scope и индикаторы чисел Display.

Управление экспериментом

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

В ходе лабораторной работы предполагается использование двух вариантов управления экспериментом:

1. Изменение параметров модели вручную (внесение вручную изменений в соответствующие блоки: InitialCondition (Начальное условие) для блока «Business» (Бизнес-Интегратор) и ConstantValue (значение константы) для блоков констант Rntb и TaxRate (или задавать значения переменных Rntb и TaxRate  в рабочей среде MatLab).

2. Автоматическое планирование и управление экспериментом. Для этого составляется программа на языке Matlab в файле с расширением .m.

Вариант программы управления экспериментом

Рассмотрим вариант программы «taxrate02.m» управления экспериментом для определения оптимальной ставки налогообложения прибыли предприятия.

Пусть построенная ранее модель сохранена в рабочей папке Work среды MatLab в файле «taxrate2.mdl».

Предварительно обязательно необходимо указать параметры конфигурации модели с помощью команды Simalation-ConfigurationParameters. Так как модель дискретная, то в поле «Solver» необходимо выбрать «Discrete (no continuous states)» (описание см. выше).

Также обязательно необходимо открыть отдельное окно построения графиков для блока Scope (двойным щелчком) и в нем настроить ‘ScopeParameters (Параметры окна Scope – графопостроитель). Для этого в окне Scope следует нажать вторую кнопку на панели инструментов и на закладке DataHistory окна ‘ScopeParameters установить флажок «Save data to work space» («Сохранить данные в рабочую область») и задать имя переменной ScopeData и ее формат Array (описание см. выше).

Текст m-файла «taxrate02.m» имеет следующий вид:

% определение оптимальной ставки налогообложениа прибыли предприатиа

TaxRate=[0:0.05:0.7] %План-вектор эксперимента по ставке налога

hold on

%Разрешить дополнение графика кривыми

for Rntb = 0.2:0.2:1 %Цикл и план-вектор по рентабельности

 sim('TaxRate2') %Run model

 plot(TaxRate, ScopeData(end,2:end))

%Чертить график поступлений в бюджет

text(TaxRate(7), ScopeData(end,8),['\leftarrow' 'Rntb='     num2str(Rntb)]);

 grid on%Чертить сетку

end

hold off %Запретить дополнение графика

%======= end TaxRate program ===============    

В цикле for цикл выполняется эксперимент при различных величинах рентабельности бизнес: командой sim запускается модель и начинается моделирование, имитация налогового взаимодействия государства и предприятия.

После окончания имитации команда plot чертит один график, используя данные рабочего (work space) пространства Matlab, записанные туда графопостроителем Scope.

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

Общая постановка задания лабораторной работы

1. Однофакторный имитационный эксперимент

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

Запустив модель из меню Simulation, наблюдаем в окнах Scope изменение показателей предприятий и бюджета во времени: рост поступлений прибыли, отчислений по налогу в бюджет и капитализацию нераспределенной прибыли бизнесом. Устанавливая различные ставки налога в соответствии с вариантом каждый раз прогоняем модель.

Серия экспериментальных графиков накопления средств в бюджете за время моделирования представлена на следующих рисунках.

Поступление средств в бюджет

Рост капитала фирмы

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

2. Двухфакторный имитационный эксперимент

Исследовать зависимость бюджетно-оптимальной ставки от эффективности работы фирмы. В качестве показателя эффективности выберем рентабельность, т.е. отношение доналоговой прибыли к капиталу. Начальный капитал зависит от варианта.

В командном окне Matlab откроем вышеописанный файл TaxRate02.m. Файл откроется в окне редактора. Этот файл будет управлять двухфакторным экспериментом. Запустим программу командой меню Tools - Run. В результате моделирования Matlab построит графики зависимости поступлений в бюджет от налоговой ставки и рентабельности предприятий.

Вид экрана экспериментальной модели представлен на следующем рисунке.

Слева расположено окно редактора программ с частичной видимостью м-файла программы управления двухфакторным экспериментом. Справа вверху Simulink модель. Справа внизу окно Scope с графиками накопления средств в бюджете для различных значений (вектора) налоговых ставок. В центре окно графиков двухфакторного имитационного эксперимента для различных ставок налога и рентабельности, нарисованного командой plot программы Matlab.

На следующем рисунке приведена экспериментальная зависимость поступлений в бюджет от налоговой ставки для предприятий различной рентабельности.

Анализ результатов

Чем выше рентабельность предприятия, тем ярче выражена оптимальная ставка налогообложения. С ростом рентабельности оптимальная ставка уменьшается (сдвигается влево), стремясь к фиксированной величине, на наших графиках, примерно, к 23%.

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

Список индивидуальных данных

Варианты:

Вариант

Рентабельность

Налоговая ставка

Начальный капитал

1

0.1

0.2

5

2

0.2

0.1

6

3

0.3

0.3

7

4

0.4

0.4

8

5

0.5

0.2

2

6

0.6

0.3

4

7

0.7

0.1

6

8

0.8

0.5

4

9

0.9

0.2

9

10

0.5

0.1

4

4


 

А также другие работы, которые могут Вас заинтересовать

30851. Современная теория мышечного сокращения 26.5 KB
  Между двумя нитями актина лежит одна толстая нить миозина между двумя Zмембранами и она взаимодействует с двумя нитями актина. На нитях миозина есть выросты ножки на концах выростов имеются головки миозина 150 молекул миозина. Головки ножек миозина обладают АТФазной активностью. Так как именно головки миозина именно эта АТФаза катализирует АТФ и высвобождающаяся при этом энергия обеспечивает мышечные сокращения при взаимодействии актина и миозина.
30852. Физиологическая регуляция функций 44 KB
  Каждая из этих регуляторных систем действует на своём уровне регуляции. Кроме того системы регуляции взаимно подчинены друг другу т. Итак существует взаимосвязь между нервной регуляцией и гуморальной и поэтому когда говорят о регуляции органа то говорят о нейрогуморальной регуляции единой. Уровни нейрогуморальной регуляции I уровень: местная и локальная регуляция происходит на минимальном пространстве касается ограниченного числа клеток единицы десятки.
30853. Системные регуляторные реакции и процессы 24.5 KB
  Адаптация приспособление механизмы которые обеспечивают приспособление организма к действию раздражителей. Адаптация бывает двух видов: а срочная адаптация б долговременная адаптация Срочная адаптация очень энергозатратна. При умеренных раздражителях тоже возникает срочная адаптация но явных признаков стресса нет. Но если раздражитель действует повторно многократно то возникает долговременная адаптация.
30854. Функциональные системы 23 KB
  Функциональные системы Функциональная система это временная динамическая саморегулирующаяся организация все составные компоненты которой взаимодействуя обеспечивают достижение полезных приспособительных результатов. В функциональной системе есть периферические и центральные составляющие: Периферические составляющие: А Исполнительные соматические вегетативные и эндокринные компоненты в том числе и поведенческие включающие механизмы формирование результата. Б Полезный приспособительный результат. В Рецепторы...
30855. Рефлекторная регуляция 34.5 KB
  Передача возбуждения в синапсе . иррадиация возникшего возбужденияраспространение возбуждения на рядом лежащие нейроны. концентрация возбуждениястягивание возбуждения на один или несколько нейронов. Индукция бывает: положительная когда наводится процесс возбуждения отрицательная когда наводится процесс торможения.
30856. Рефлексы 31 KB
  Рефлексы Рефлексы делятся на безусловные и условные. Безусловные рефлексы Это врожденные рефлексы которые не требуют предварительной выработки при действии раздражителя реализуются однотипно без особых предварительных условий. Безусловные рефлексы являются видовыми т. Рефлексы направленные на сохранение вида.
30857. Вегетативная нервная система 35.5 KB
  Очаговое представительство нервных центров СНС и ПСНС в ЦНС и. СНС боковые рога тораколюмбального отдела спинного мозга. ПСНС три зоны где лежат её центры:а мезенцефальный отдел ветви в составе глазодвигательного нерва зрачок некоторые слюнные железы;б бульбарный отдел лицевой языкоглоточный нерв и n. ВНС представлена двумя отделами: а симпатическая нервная система СНС б парасимпатическая нервная система ПСНС.
30858. Гуморальная регуляция функций 39.5 KB
  Классификация биологически активных веществ БАВ: Неспецифические метаболиты. Специфические метаболиты: а тканевые гормоны парагормоны; б истинные гормоны. Неспецифические метаболиты продукты метаболизма вырабатываемые любой клеткой в процессе жизнедеятельности и обладающие биологической активностью СО2 молочная кислота. Специфические метаболиты продукты жизнедеятельности вырабатываемые определенными специализированными видами клеток обладающие биологической активностью и специфичностью действия: а тканевые...
30859. Гуморальная регуляция функций. Межсистемный уровень 29.5 KB
  Истинные гормоны. Парагормоны. Истинные гормоны БАВ вырабатывающиеся в специализированных железах внутренней секреции обладающие дистантным действием и высокой активностью. Делятся по принадлежности к железам внутренней секреции половые гормоны тиреоидные гормоны и т.