- •Bведение
- •1. Основы языка Basic
- •1.1. Основные структуры
- •1.2. Операторы ввода, вывода, позиционирования
- •1.3. Числа
- •1.4. Строки
- •1.5. Операторы def, dim, пользовательский тип
- •1.6. Разветвление и альтернатива
- •1.7. Циклы
- •If k then print "пароль принят" else print "ошибка пароля"
- •Input "Введите произвольный текст : ", txt
- •Input X
- •1.8. Программные стэки
- •1.9. Массивы
- •If I and jb then
- •Input n
- •1.10. Функции, подпрограммы
- •1.11. Файлы
- •1.12. Сегментирование программы
- •Input n
- •1.13. Работа с графической информацией
- •If nu then gosub Move 'перемещение рисунка
- •1.14. Звуковое воспроизведение
- •2. Элементы vba
- •2.1. Типы переменных
- •2.2. Использование массивов
- •2.3. Разветвление и циклы
- •2.4. Работа с ячейками листа
- •If y X Then
- •If Check Then
- •2.5. Элементы управления
- •If X 0 Then
- •2.6. Пользовательские классы
- •If IsEmpty(Text2) Then Exit Sub
- •2.7. Построение графиков в excel
- •2.8. Построение графиков и таблиц в word
- •3. Ключи в word
- •4. Гипертекстовая разметка
- •4.1. Основные тэги html
- •4.2. Форматирование таблиц
- •4.3. Фреймы
- •5. Основы программирования в среде MathCad
- •5.1. Особенности языка MathCad
- •5.2. Некоторые вычислительные модели
- •5.2.1. Системы уравнений
- •5.2.1.1. Системы линейных уравнений
- •Iter(a, b, e) n Last (b)
- •5.2.1.2. Нелинейные уравнения и системы
- •5.2.2. Определенный интеграл
- •5.2.3. Функции на дискретном множестве
- •5.2.4. Обыкновенные дифференциальные уравнения
- •5.2.5. Минимизация функций
- •5.2.5.1. Функции одной переменной
- •5.2.5.2. Функции многих переменных
- •5.2.6. Pазностная модель и прогноз
- •1 Otherwise (коэффициенты непрерывной модели)
- •5.2.7. Сглаживание и осреднение рядов
- •Задания
- •Литература
5.2.7. Сглаживание и осреднение рядов
Mcad имеет несколько встроенных функций для решения ука-занной в заголовке задачи: medsmooth (скользящая медиана с задан-ной шириной окна), ksmooth (осреднение на основе распределения Гаусса), supersmooth и др. Изящная идея, принадлежащая пови-димому Безье (скользящая огибающая кусочно-линейного графика), для временных рядов (т. е. функций натурального аргумента) приво-дит к весьма простым формулам: i = , i = 0, 1, ... n - 1, если положить y - 1 = y 0 , y n - 1 = y n (что эквивалентно сглаживанию скользящей средней по трем точкам); m - кратное использование такой
процедуры сглаживает ряд до необходимой степени:
Smo(z) n Last(z)
for i 0 . . n
r i 0.125 (7 z 0 + z 1) if i = 0
0.125 (7 z n - 1 + z n - 2) if i = n
0.125 (z i - 1 + 6 z i + z i + 1) otherwise
r
S(m) r z
for i 1 . . m if m > 0
r Smo(r)
r
Сравним результаты сглаживания возмущенного ряда z из предыду-щего примера, объединив на графике "чистый" процесс у, возмущен-ный z, сглаженный S(5) и Ss = supersmooth(x, y) (рис. 7). В обоих способах сглаживания отмечается неплохое согласие с "чистым" про-цессом.
В общем, для эффективного "очищения" процесса следует знать характер шума (помехи) и уж совсем неплохо иметь правдоподобную гипотезу относительно исследуемой закономерности. В большинстве
Рис. 7
практически важных случаев ни то, ни другое не известно. Поэтому наиболее популярными остаются методы скользящего среднего и раз-личные его варианты.
Задания
1. Составить блок-схему решения квадратного уравнения (входные
данные – коэффициенты уравнения).
2. Составить блок-схему решения кубического уравнения с целыми
коэффициентами, если известно, что один из корней – целое число.
3. Для произвольного введенного числа х вывести на экран монитора
значение выражения , имея при этом в виду,
что для логарифма, показателя и арктангенса х – произвольное
десятичное число, а для синуса и косинуса это градусная мера угла.
4. Ввести произвольное натуральное четырехзначное число, получить
три числа, получаемые из введенного циклической перестановкой
цифр, сложить все четыре числа и поделить результат на сумму
цифр введенного числа. Объяснить результат.
5. Используя операторы позиционирования и коды псевдографики,
вывести на экран в двойной цветной рамке свою фамилию, имя и
номер учебной группы. Цвет текста внутри рамки отличен от цве-
та границы рамки.
6. Составить программу с полным анализом корней квадратного ура-
внения в зависимости от его коэффициентов.
7. Вводится произвольный текст, содержащий целые числа (со знака-
ми), разделенные произвольными символами. Найти сумму этих
чисел.
8. Вводится натуральное число n. Вырабатывается последователь-
ность n случайных чисел, равномерно распределенных на произ-
вольном промежутке. Назовем "горкой" число в этой последова-
тельности, которое больше своих непосредственных соседей слева
и справа. Составить программу, не использующую массивы, выво-
дящую на экран монитора все члены последовательности чисел,
выделяя цветом "горки". Посчитать количество "горок". Как изме-
нится программа, если учитывать не по одному соседу слева и
справа, а по два или по три?
9. Вводится натуральное число n. Заполнить квадратный n×n – мас-
сив числами натурального ряда "змейкой": в строках с нечетны-
ми номерами естественный порядок следования слева направо, в
строках с четными номерами порядок обратный. Например, 4×4
массив должен быть заполнен следующим образом: .
10. Определить тип переменной Person, содержащий фамилию, пол,
возраст, рост, вес, зарплату, количество детей и семизначный теле-
фон. Определить массив из 10 – 15 переменных указанного типа.
Элементы массива заполнить следующим образом: фамилии счи-
тать из подготовленного заранее стека DATA, возраст (> 20 лет),
рост (> 100 см.), количество детей, зарплату и телефон (> 999999)
определить случайным образом (функцией RND). Вес задать фор-
мулой: вес (кг) = рост (см) – 80. Вывести на экран содержимое
полученного массива, упорядочить массив по содержимому одного
из указанных полей типа (по фамилии – алфавитный порядок, по
возрасту, весу и т. д. – в порядке возрастания). Вывести результат
на экран.
11. Указанный интервал определения функции f(x) разбить на 20 рав-
ных частей. Вычислить значения функции f(x) в точках деления и
вывести эти значения на экран.
1. f(x) = , x [-1, 1].
2. f(x) = , x [-1, 2].
3. f(x) = \r(2 - \r(2 + \r(2 + … + \r(2 , x [-1; 1].
4. f(x) = n x , x [-2, 2], = .
5. f(x) = (-1)n xn , x (-1, 1].
6. f(x) = (-1)n-1 , x [-, ].
7. f(x) = , x [-2, 2].
8. f(x) = xn , x [-1, 1].
9. f(x) = , x [0.2, 4].
10. f(x) = (xn + x –n), x [0.5, 2].
11. f(x) = , где [ ∙ ] -целая часть числа, x [-2, 2].
12. f(x) = , x [-, ].
13. f(x) = , x [-1, 1].
14. f(x) = (-1) , x [-1, 1].
15. f(x) = , x [-1, 1].
12. Массив записей из задания 10 сохранить в файле прямого доступа.
Выбрать из файла данные, удовлетворяющие определенному усло-
вию (например, фамилии, начинающиеся на заданную букву, либо
с зарплатой не ниже заданной, либо с числом детей больше трех и
т. д.).
13. Для функции из задания 11 построить график (сплошной линией,
используя не менее 100 значений функции), выбрав масштаб в со-
ответствии с размером экрана.
14. Изобразить на экране рисунок по своему вкусу. Организовать пере-
мещение рисунка по экрану, управляемое с клавиатуры.
15. Организовать в VBA (Excel, используйте вставку рисунка по ситуа-
ции) диалог типа:
"Тук-тук!" "Кто там?"
16. Работа с таблицей Excel (автозаполнение, вычисление по форму-
лам): заполнить таблицу значений xn = n h, yn = 5 sin xn + 2СлЧис-1,
n = 0, 1, …, 10, с шагом h = 0.2. Заполнить таблицы значений xn2,
xn yn . В конце каждой таблицы посчитать среднее значение с помо-
щью меню и встроенных функций. Посчитать коэффициент (пар-
ной) регрессии k = (чертой обозначено среднее значение)
и свободный член b = . Заполнить таблицу значений парной
регрессии Yn = k xn + b. Построить сравнительную диаграмму зна-
чений yn и Yn .
17. Элементы управления в Excel: построить модель калькулятора с
вычислением основных элементарных функций.
18. Элементы управления в Excel: создать программу чтения информа-
ции из текстового окна с занесением ее в в окно списка и выбора
строки списка (мышкой) с занесением информации в текстовое ок-
но. В окне списка информация не должна повторяться. Попробуйте
вносить информацию в список, не нарушая (алфавитного) порядка.
19. Excel: постройте макрос (управляемый кнопкой на рабочем листе),
заполняющий таблицу значений функции из задания 11 и рисую-
щий на этом же листе график по таблице значений.
20. Пользовательский класс: очередь с приоритетом. Организуйте по-
мещение информации в очередь в соответствии с указанным при-
оритетом (каждая вводимая информация имеет свой приоритет и
чем выше приоритет, тем ближе к началу очереди размещается ин-
формация). Удаление из очереди всегда происходит с "головы".
21. Word: составить документ, поясняющий суть теоремы Пифагора.
Документ должен содержать заголовок, пояснение важности темы,
цветной рисунок с необходимыми обозначениями (чертеж), текст
теоремы в классическом и векторном вариантах. Использовать та-
блицу с невидимой рамкой для совмещения рисунка и текста.
22. Word: вставить в текстовый документ формулу вида:
I = F(x(u,v,w), y(u,v,w), z(u,v,w)) du dv dw, где
= - якобиан преобразования координат, и
альтернгативу
23. Word: в документе фразе "заполнить таблицу" назначить макрос,
заполняющий подготовленную таблицу значениями функции из
задания 11 (11 значений функции на указанном промежутке) и ри-
сующий в документе график по этим значениям.
24. Web: составить документ на тему о своей семье. Документ состоит
из двух вертикальных половин: в левой – списочный состав семьи,
в правой – информация, появляющаяся при щелчке мышкой по
элементу списка в левой части.
25. MathCad: вычислить значение .
26. MathCad: для функции из задания 11 найти производную в сред-
ней точке промежутка, вычислить интеграл от этой функции по за-
данному промежутку, построить график функции и касательной к
графику в средней точке промежутка.
27. MathCad: функция f0(x) ≡ 1, а fn (x) = , n = 1, 2, …., x > 0,
функция F(x) = fn (x). Построить график функции F и ее про-
изводной.
28. MathCad: решить систему линейных уравнений Ax = b с матрицей
A = и правой частью b = методом Крамера и
методом Гаусса. Сравнить результаты. Могут ли появиться пробле-
мы с реализацией метода Гаусса?
29. MathCad: для фиксированного натурального n определить матри-
цу Ai, j = (i, j = 0, 1, …, n-1) и вектор с длины n,
первые координаты которого – цифры номера студенческого биле-
та. Пусть b = A∙c. Решить систему линейных уравнений Ax = b:
а) с помощью встроенной функции Lsolve, б) методом обратной
матрицы, в) методом Крамера, г) методом Гаусса. Сравнить резуль-
таты с номером студенческого билета.
30. MathCad: для функции f(x) построить график, определить область,
содержащую наименьший по модулю отличный от нуля корень,
найти значение этого корня с шестью верными знаками методом
деления пополам и методом Ньютона.
1. f(x) = - tg x + 2; 2. f(x) = arctg x - e – 1.5;
3. f(x) = + 0.05; 4. f(x) = x + ;
5. f(x) = e arctg x – 8; 6. f(x) = x – 1;
7. f(x) = sin 2x – arctg x; 8. f(x) = cos x + x2 – 1.2;
9. f(x) = 1.6 e - arctg x; 10. f(x) = ch x + 1 – 2 ;
11. f(x) = x + - tg (x – 1); 12. f(x) = ln (1 + x) - ;
13. f(x) = – 3 cos – 0.01; 14. f(x) = - 2;
15. f(x) = – 10 ln (1 + ); 16. f(x) = ctg x + .
31. MathCad: для фиксированного натурального n определим функ-
цию непрерывной дробью f(x) = 1 - x + . Провести
средствами MathCad полное исследование функции (найти корни,
асимптоты, корни первой и второй производной, промежутки мо-
нотонности, экстремумы, перегибы), сравнить с построенным гра-
фиком.
32. MathCad: для приведенных ниже интегралов вычислить значение с
тремя верными знаками по формулам прямоугольников, трапеций
и Гаусса (с двумя узлами), сравнить с результатом интегрирования
MathCad. Точность можно оценить, увеличивая (например, удваи-
вая) число узлов разбиения промежутка интегрирования.
1) ∫;\a\vs10(1;0; 2) ∫;\a\vs10(1;0x ln dx; 3) ∫;\a\vs10(1;0 dx;
4) ∫;\a\vs10(1;0 ; 5) ∫;\a\vs10(1;0cos ; 6) ∫;\a\vs10(1;0;
7) ∫;\a\vs10(1;0; 8) ∫;\a\vs10(1;0 dx; 9) ∫;\a\vs10(2;0.5 dx;
10) ∫;\a\vs10(3;0arcsin dx; 11) ∫;\a\vs10((;0 dx; 12) ∫;\a\vs10(1;0dx;
13) ∫;\a\vs10((;0; 14) ∫;\s\up2(\a\vs16(\s\up2(( dx; 15) ∫;\a\vs10(2;0.5 ;
16) ∫;\s\up2(\a\vs16(\s\up2(( dx; 17) ∫;\s\up1(\a\vs12(\s\up2(( ctg x dx; 18) ∫;\a\vs10(2;1 .
33. MathCad: найти приближенное решение системы уравнений мето-
дом Ньютона, сравнить с результатом, полученным средствами па-
кета.
1.
2.
3.
Попробуйте различные точки старта, например, (0, 1, 1, 1)
или (0, 1, -2, 1).
4.
Попробуйте другой старт, например, (1, 1, 1, 1).
5.