Учебная работа. Курсовая работа: Программирование и основы алгоритмизации 3
ГОСУДАРСТВЕННОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
КАМСКАЯ ГОСУДАРСТВЕННАЯ ИНЖЕНЕРНО — ЭКОНОМИЧЕСКАЯ
АКАДЕМИЯ
Кафедра А и ИТ
Курсовая работа
по дисциплине «Программирование и базы алгоритмизации»
Вариант № 22
Выполнил: студент
группы № 4241-с
Валиев М.Р.
Проверил: доцент
Савицкий С.К.
Набережные Челны
2011
Задание
1. Отыскать минимум функции tg(0.55x+0.1)–x2
способом золотого сечения.
1.1 Избрать исходный отрезок, содержащий минимум функции. Для этого выстроить график функции. При построении графиков функции следует за ранее избрать размещение координатных осей и масштаб на их.
1.2 Составить блок-схему метода.
1.3 Отладить и выполнить программку на ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач), получить с данной точностью е=10-4
максимум функции.
1.4 Для контроля подставить отысканный корень в уравнение и сопоставить итог с «е» (он должен быть меньше «е»).
1.5 Проверить приобретенное решение методом построения графиков в Excel либо MathCAD.
2. Дана целочисленная матрица a[ij] i, j=1, …, n. Получить b1
, …, bn
, где bi
– это maxaij
1 £ j £n.
2.1 Составить блок-схему метода.
2.2 Отладить и выполнить программку на ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач).
Теоретическое обоснование способов решения
Задание 1
способ золотого сечения. Этот способ является одним из более действенных способов, в каком при ограниченном количестве вычислений мотивированной функции f(x) достигается лучшая точность. Сущность способа заклюю чается в построении последовательности отрезков [a0
,b0
], [a1
,b1
], … стягивающихся к точке минимума функции f(x). На любом шаге, кроме первого, вычисление значения функции f(x) делается только один раз. Эта точка, именуемая золотым сечением, выбирается так, чтоб отношение длинны огромного отрезка к длине всего отрезка приравнивалось отношению длинны наименьшего отрезка к длине огромного отрезка lб
/l=lм
/lб
. Так как непонятно в которой последовательности (lм
и lб
либо lм
и lб
) разделять интервал неопределенности, то разглядывают внутренние точки, надлежащие двум способам деления.
На первом шаге процесса оптимизации снутри отрезка [a0
,b0
] выбираются две внутренние точки х1
и х2
и рассчитываются значения мотивированной функции f(x1
) f(x2
). Так как в данном случае f(x1
) < f(x2
) , разумеется, что минимум размещен на одном из прилегающих к x1
отрезков [a1
x1
] либо [x1
x2
]. Потому отрезок [x2
b0
] можно откинуть, сузив тем начальный интервал неопределенности.
2-ой шаг проводим на отрезке [a1
,b1
], где a1
=a0
b1
=x2
. необходимо опять избрать две внутренние точки, но одна из их х1
осталась из предшествующего шага x3
=x1
, потому довольно избрать только одну точку x4
, вычислить ясно что минимум находится на отрезке [х4
,b1
]. Обозначим этот отрезок [a2
,b2
], опять выберем одну внутреннюю точку и повторим функцию сужения интервала неопределенности. процесс оптимизации повторяется до того времени, пока длинна еще одного отрезка [an
,bn
] не станет меньше данной величины е
Задание 2
Массив
— это постоянная структура данных 1-го типа, где все составляющие могут выбираться произвольно и являются идиентично доступными. Регулярность состоит в том, что все данные организованы по одной закономерности. Для обеспечения доступа к хоть какому элементу массива вводится особое число называемое индексом.
Индекс
— это целое число либо совокупа целых чисел, указывающих положение элемента в массиве.
Массивы используются в широкой области приложений, к примеру:
1. Векторы. Управляющие действия, которые изменяют состояние системы, обычно задаются в виде векторов, именуемых управляющими векторами.
2. Матрицы. системы управления нередко обрисовывают в виде систем дифференциальных уравнений, для решения которых используют пространство знака либо элемента, существует к тому же 3-я координата — цветовая палитра.
Листинг программ
текст программки 1:
Dim a As Double, b As Double ‘отрезок
Dim m ‘масштаб
Dim i ‘счетчик
DimX ‘координата х
DimY ‘
Dimu ‘смещение по Оу
Dimw ‘смещение по оси Ох
Private Sub Command1_Click()
Cls ‘чистка экрана
a = -5
b = 5
Calldraw ‘вызов функции, которая отрисовывают график
EndSub
PublicSubdraw() ‘функция, рисующая график
‘разметка по Ох (правая часть)
For i = 0 To b + 1
Line (w + i * m, u — 0.1)-(w + i * m, u + 0.1)
Printi;
Nexti
‘разметка по Ох (левая часть)
For i = 0 To a — 1 Step -1
Line (w + i * m, u — 0.1)-(w + i * m, u + 0.1)
Printi;
Nexti
‘разметка по Оу (верхняя часть)
For i = 1 To 20
Line (w — 0.1, u — i * m)-(w + 0.1, u — i * m)
Printi
Nexti
‘разметка по Оу (нижняя часть)
For i = 1 To 4
Line (w — 0.1, u + i * m)-(w + 0.1, u + i * m)
Print «-«; i
Nexti
‘рисование графика по точкам
For X = a To b Step 0.0001
Y = -(Tan(0.55 * X + 0.1) — X ^ 2)
PSet (X * m — a * m + 0 + m * a + w, Y * m + u)
Next
‘рисование осей Ох и Оу
Line (0, u)-(30, u)
Line (w, 0)-(w, 30)
End Sub
Private Sub Form_Load()
m = 1.5 ‘исходный масштаб
u = 3 ‘изначальное смещение координат относительно Оy
w = 4 ‘изначальное смещение координат относительно Оx
EndSub
‘вычисление минимума способом сечения
Private Sub Command4_Click()
Dim a, b, x1, x2, fx1, fx2
Dim c As Currency
Dim f_c As Currency
Dim a0, b0, e
a0 = Val(InputBox(«a»))
b0 = Val(InputBox(«b»))
a = a0
b = b0
x1 = ((b0 — a0) * 0.382) + a0
x2 = ((b0 — a0) * 0.618) + a0
Do Until Абс(b — a) < 0.0001
If (Tan(0.55 * x1 + 0.1) — x1 ^ 2) < (Tan(0.55 * x2 + 0.1) — x2 ^ 2) Then
b = x2
x2 = x1
x1 = ((b — a) * 0.382) + a
Else
a = x1
x1 = x2
x2 = ((b — a) * 0.618) + a
End If
Loop
c = (a + b) / 2
f_c = Tan(0.55 * c + 0.1) — c ^ 2
Text4.Text = c
Text3.Text = f_c
Calldraw ‘вызов функции, которая отрисовывают график
EndSub
текст программки 2:
Private Sub Command1_Click()
Cls ‘ чистка экрана
n = InputBox(«Введите порядок матрицы»)
ReDima(n, n) AsDouble ‘переопределение размера массива
ReDimb(n) AsDouble
‘ввод частей матрицы
For i = 1 To n
b(i) = a(i, 1)
For j = 1 To n
a(i, j) = InputBox(«Введите пожалуста элемент матрицы: (» + Str(i) +