Автор: Пользователь скрыл имя, 17 Января 2012 в 18:17, курсовая работа
Целью курсовой работы является подготовка к последующим этапам учебной деятельности – умению решать инженерные задачи с помощью персональных компьютеров, применять полученные знания в учебной исследовательской работе и в будущем – в дипломной работе.
ВВЕДЕНИЕ 3
ПОСТАНОВКА ЗАДАЧИ 4
МЕТОД СКАНИРОВАНИЯ 4
КРАТКИЙ ОБЗОР ПРОГРАММНЫХ СРЕД 6
АЛГОРИТМ РЕШЕНИЯ 7
1. Поиск отрезка, содержащего локальный минимум, в Excel 7
2. Программа в Turbo Pascal 8
2. Проверка результатов в пакете MathCAD 9
ЗАКЛЮЧЕНИЕ 10
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 11
Рис.3. Поиск локального минимума в пакете MathCad
Метод сканирования является простейшим методом глобальной оптимизации. Метод состоит в последовательном переборе точек . В простейшем случае точки выбираются равномерно. Для заданной функции и точности вычислений локальный минимум был найден при выборе начального приближения слева и справа от точки локального минимума. При этом потребовалось 60 итераций при выборе слева и 195 итераций – при выборе справа. В каждом случае найдена точка минимума .
При поиске локального минимума в пакете MathCAD получено значение 0,5 для обоих вариантов выбора начального приближения. Данное значение совпадает со значениями, полученными с помощью программы.
uses crt;
var
x, y: real;
n: integer;
function F(x: real): real;
begin
F := 1 + exp(ln(sqr(x-0.5))/3);
end;
function MScan(xstart, e: real): real;
var
x0, x1, y0, y1, del0: real;
stopScan: boolean;
begin
x0 := xstart;
del0 := 0.1;
stopScan:=false;
n := 0;
x1 := x0 + del0;
y0 := F(x0);
y1 :=
F(x1);
while (stopScan <> true) do
begin
n := n+1;
if (y1<y0) then
begin
x0 := x1;
end;
if (y1>y0) then
begin
if (abs(del0) < e) then
begin
stopScan := true;
MScan := x0;
end
else
begin
del0 := -1*0.1*del0;
x0 := x1;
end;
end;
if (abs(y1-y0) < e) then
begin
MScan := (x0+x1)/2;
stopScan := true;
end;
x1 := x0 + del0;
y0 := F(x0);
y1 := F(x1);
end; {while}
end;
begin
clrscr;
x:=MScan(2,
0.0001);
writeln('Локальный минимум функции находится в точке: (', x:1:3, ' , ', F(x):1:3, ')');
writeln('Число итераций: ', n);
readln;
end.
Информация о работе Численные методы в решении инженерных задач