Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Popov_Filippov_Excel_2013_2

.pdf
Скачиваний:
15
Добавлен:
16.04.2015
Размер:
811.05 Кб
Скачать

в) кладоискатель нашел клад, в котором имеются в практически неограниченном количестве изделия из золота типов Х1, Х2, Х3 стоимостью Y1,Y2, Y3 соответственно. Унести можно не более 50 кг груза. Для распиливания нет инструментов. Сколько, каких изделий лучше взять, если цель кладоискателя – стать богатым?

Порядок выполнения работы

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

просто поставить задачу поиска решения.

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

Затем следует определить общий вес выпущенных товаров и общую прибыль.

Далее ставится задача поиска решения.

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

Результат работы

Ответы на поставленные задачи: нахождения кубического корня; одну из задач о заборе, одну из задач о загрузке рюкзака.

Умение работать со средствами подбора параметра и поиска решения.

10. Работа со случайными числами

Цель работы – освоение работы с генератором случайных чисел

Общие сведения

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

41

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

Однако случайность используется и для решения целого ряда задач. К их числу относится определение числа Пи, интеграла функции, экстремума функции.

Существуют и более сложные задачи, с которыми Вы познакомитесь на старших курсах.

Задание

Определить значение числа с помощью аппарата случайных чисел.

Порядок выполнения

Для решения задачи потребуется построить квадрат единичного размера и вписать в него четверть окружности (Рис.6). Площадь квадрата равна единице, а площадь, расположенная под дугой, равна /4. Таким образом, число может быть определено как учетверенная площадь фигуры, ограниченной сверху дугой окружности.

Рис.6. Иллюстрация способа определения числа .

Уравнение окружности имеет вид X2+Y2=1, откуда Y 1 X2 . Если генерировать случайные точки, равномерно распределенные по площади квадрата, то доля точек, расположенных ниже дуги, и даст

величину, равную одной четверти числа .

Для генерации случайных чисел, равномерно распределенных в диапазоне от 0 до 1, используется функция СЛЧИС().

Итак, создайте таблицу на чистом листе рабочей книги. Первый столбец будет озаглавлен Х, второй – Y, третий – Z. В первых двух

42

столбцах должны содержаться координаты точек – случайные числа, равномерно распределенные в диапазоне от 0 до 1, то есть функция СЛЧИС(). Z равно единице, если точка находится ниже дуги, и нулю, если выше. Для этого используйте функцию ЕСЛИ.

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

СЧЁТ.

Произведите расчет вначале для 100 точек.

Определите, сколько точек должно быть использовано при расчетах, чтобы точность определения составляла три знака, то есть чтобы было получено значение: 3,14. Для этого несколько раз нажмите клавишу F9, что вызовет пересчет всех формул листа, в том числе - функций генерации случайных чисел. Если первые три цифры полученного числа отличаются от 3,14, увеличьте число точек.

Постройте график функции Y(X) для точек, расположенных ниже дуги окружности.

Результат работы

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

Дополнительные задания

1.Проверьте качество генератора случайных чисел. Для этого, сгенерируйте большое количество случайных чисел и подсчитайте, какие доли сгенерированных чисел попали в диапазон от 0 до 0.1, от 0.1 до 0.2

ит.д. В идеальном случае эти должны быть равны 0.1.

2.Постройте средство определения экстремума (минимума) функции

Y=X2 в диапазоне от -2 до 2 с помощью случайных чисел. Для нахождения экстремума генерируются значения Х, по ним определяются значения Y. Среди полученных значений Y выбирается наименьшее.

3. Создайте формулу, которая определит, при каком значении аргумента достигается экстремум функции.

11. Моделирование динамических процессов

Цель работы – изучить принципы моделирования динамических процессов

43

Общие сведения

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

Такие процессы описываются дифференциальными или интегральными уравнениями, известными Вам из курса высшей математики.

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

Переменные задачи: Н – количество людей, не знающих о товаре; З1 количество людей, знающих о товаре фирмы 1; З2 количество людей, знающих о товаре фирмы 2; И1 количество людей, имеющих товар фирмы 1; И2 количество людей, имеющих товар фирмы 2; Р1 коэффициент воздействия рекламы фирмы 1: доля людей, не знающих о товаре, которые узнали о товаре фирмы 1 за единицу времени; Р2 коэффициент воздействия рекламы фирмы 2: доля людей, не знающих о товаре, которые узнали о товаре фирмы 2 за единицу времени; С – коэффициент распространения слухов: количество обсуждений на одну пару, состоящую из человека, имеющего товар, и человека, не знающего о нем, за единицу времени; Б – коэффициент благосостояния – доля людей, купивших товар, среди людей, знающих о нем, за единицу времени.

Производная обозначается символом «'». Процесс описывается системой уравнений:

Уравнения, описывающие систему, выглядят следующим образом:

Н'=-(Н*И1*С+Н*Р1)-(Н*И2*С+Н*Р2); З1'=Н*И1*С+Н*Р11*Б; З2'=Н*И2*С+Н*Р22*Б; И1'=З1*Б;

И2'=З2*Б.

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

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

44

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

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

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

Четвертое и пятое уравнение показывают скорость увеличения количества людей, имеющих товар организаций 1 и 2, соответственно. Из рисунка видно, что это увеличение происходит за счет уменьшения числа людей, знающих о товаре, но не имеющих его, поэтому левая часть уравнений совпадает с последними слагаемыми второго и третьего уравнений соответственно, но с обратным знаком.

Для решения построенной системы следует указать начальные условия. Согласно сделанным допущениям, вначале о товарах предлагаемого фирмами типа никто не знает, поэтому число людей, не знающих о товаре, равно численности населения, а начальные значения переменных З1, З2, И1, И2 равны нулю. Удобно также решать уравнения, перейдя от численности населения к процентам. Это можно сделать, так как численность населения предполагается постоянной. Итак,

Н(0)= 100(%);

З1=0; З2=0; И1=0; И2=0.

Если решение производится не с помощью специализированных средств, а, например, средствами Excel, то следует вручную перейти к разностной форме, используя определение производной:

45

X' lim x(t t) x(t) .

df t 0

t

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

(H(t+Δt)-Н(t))/Δt=-(Н(t)*И1(t)*С+Н(t)*Р1)-(Н(t)*И2(t)*С+Н(t)*Р2); (З1(t+Δt)-З1(t))/Δt=Н(t)*И1(t)*С+Н(t)*Р11(t)*Б; (З2(t+Δt)-З2(t))/Δt=Н(t)*И2(t)*С+Н(t)*Р22(t)*Б; (И1(t+Δt)-И1(t))/Δt=З1(t)*Б;

2(t+Δt)-И2(t))/Δt=З2(t)*Б.

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

H(t+Δt)=Н(t)-(Н(t)*И1(t)*С+Н(t)*Р1+Н(t)*И2(t)*С+Н(t)*Р2)*Δt; З1(t+Δt)=З1(t)+(Н(t)*И1(t)*С+Н(t)*Р11(t)*Б)*Δt; З2(t+Δt)=З2(t)+(Н(t)*И2(t)*С+Н(t)*Р22(t)*Б)Δt; И1(t+Δt)=И1(t)+З1(t)*Б*Δt;

И2(t+Δt)=И2(t)+З2(t)*Б*Δt.

Построить решение такого уравнения с учетом начальных условий не составляет труда.

Задание

Постройте графики переходных процессов для переменных З1, З2, И1, И2 при указанных выше начальных условиях и Δt=0,01 единицы времени. В качестве единицы времени выбирается 1 месяц. Значения коэффициентов: С=0,5; Р1=0.6; Р2=0.4; Б=0.5. Период моделирования должен составлять 10 месяцев.

Порядок выполнения

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

2.Параметры модели должны задаваться явным образом (в отдельных ячейках).

3.График строится обычным образом.

46

Результат работы

Графики переходных процессов, изменяющиеся при изменении параметров модели.

Умение интерпретировать изменения графиков.

Дополнительные задания

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

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

12. Макросы в MS Excel

Цель работы – научиться использовать в Excel макросы

Общие сведения

Макрос – это запись определенной последовательности действий в

Excel. Такая запись выполняется на языке Visual Basic for Applications (VBA).

Создавать макросы можно вручную, записывая последовательность команд на языке VBA, или автоматически – «заставить» Excel отслеживать все Ваши действия и записывать их в соответствующий модуль.

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

Элементы управления на вкладке Разработчик24. Данная вкладка, в

частности, содержит инструмент Вставить. В нем содержатся

Элементы управления формы и Элементы управления ActiveX. В

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

23Это элементы, аналогичные тем, которые есть в диалоговых окнах:

текстовые поля, кнопки, переключатели, флажки и проч.

24Для включения вкладки выберите Файл Параметры Настройка ленты и используйте пункт Основные вкладки, затем в списке установите флажок Разработчик.

47

Нажмите инструмент Кнопка и укажите мышкой место и размер будущей кнопки на листе рабочей книги. Выделите вновь созданную кнопку и нажмите команду Свойства в поле Элементы управления. Здесь можно вывести окно свойств данного элемента управления. К числу этих свойств относятся: Caption – надпись на кнопке, BackColor и ForeColor – цвета фона и надписи соответственно. Можно задать и другие свойства.

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

Чтобы узнать, что задает то или иное свойство, выделите его в окне свойств и нажмите клавишу F1.

Полезно запомнить или записать значение свойства Name (оно – самое первое в списке свойств). Это имя, по которому одна кнопка отличается от другой. По имени можно обратиться к кнопке из программы, чтобы изменить ее свойства.

Лучше не изменять имя, даваемое автоматически, так как каждый созданный объект должен иметь уникальное имя.

Только что созданная кнопка находится в режиме Конструктора. Это можно видеть в поле Элементы управления: кнопка Конструктор (на ней изображены треугольник, линейка и карандаш) нажата. В режиме конструктора можно изменять свойства созданных элементов управления, перемещать их, изменять их размеры. Для удаления элемента управления достаточновыделить его и нажать клавишу Delete.

Если щелкнуть мышкой по нажатой кнопке Конструктор, она «отожмется» и все созданные Вами элементы управления станут работоспособными. Например, щелчок по ней вызовет ее нажатие.

Самое важное для кнопки – та программа, которая выполняется при ее нажатии. Для того чтобы написать такую программу, следует дважды щелкнуть по кнопке в режиме Конструктора. Откроется окно Visual Basic. В нем Вы сразу увидите автоматически созданную заготовку программы:

Private Sub CommandButton1_Click()

End Sub

Первая строка отмечает начало программы. Первое слово (Private) не столь важно в данный момент. Второе (Sub25) обозначает программу.

25 Subroutine – процедура.

48

Далее идет имя программы. Оно состоит из имени объекта, с которым эта программа связана (в данном случае это кнопка по имени CommandButton1) и, через символ подчеркивания, – того действия, при котором данная программа активизируется (Click – щелчок). Пустые круглые скобки обязательны и обозначают, что это имя программы.

Любая программа должна заканчиваться инструкцией End Sub. Между этими двумя строками и пишется программа.

Для первого опыта создания программы предлагается вывести на экран сообщение в диалоговом окне.

Это делается командой

MsgBox “Привет, мир!“

В кавычках указывается выводимый текст26.

Для запуска программы следует вернуться в окно Excel и выключить режим конструктора27.

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

Измените текст в окне программы на нижеследующий

Private Sub CommandButton1_Click()

SayHello

End Sub

Sub SayHello()

MsgBox "Привет, мир!"

End Sub

Теперь работа «программного обеспечения» усложнилась: программа

CommandButton1_Click вызывает программу SayHello.

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

26Почти во всех книгах с описанием языков программирования имеется пример аналогичной сложности, удобный для первого знакомства с языком. Во всем мире такие задачи получили название задач класса Hello, world.

27Окно Visual Basic лучше пока не закрывать, чтобы облегчить переход к нему в случае необходимости исправления ошибок или модификации программы. Все открытые окна видны в строке состояния Windows.

49

Перейдите на лист Excel в поле Код и нажмите Начать запись28. Запомните предлагаемое автоматически имя макроса или придумайте свое.

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

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

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

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

Если Вы забыли имя макроса или создали несколько макросов, их имена и записанные в них команды можно найти в окне Visual Basic в части, озаглавленной Проект, в папке Модули29.

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

Задание

Создать программу, описанную в разделе Общие сведения.

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

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

Порядок выполнения работы

1.Порядок выполнения первой части описан в указанном разделе.

2.Создайте макросы для перехода с листа на лист и свяжите их с кнопками.

3.Создание макроса для автоматической нумерации строк таблицы производится в следующем порядке:

- выделите столбец ячеек, в которых будут располагаться номера;

28Макрос это по сути дела программа.

29Навигация здесь похожа на навигацию в Проводнике.

50

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