Главная
Регистрация
Вход
Суббота
18.05.2024
15:23
Приветствую Вас Гость | RSS
Скачать бесплатно книги, работы!

Меню сайта

ОбЛакА ТеГоВ

Категории раздела
Системный анализ процессов химической технологии [6]
Здесь можно просмотреть и скачать лабораторные работы (программы для вычисления написаны в Pascal 7.0).
Детали машин [2]
сопромат и т.д.
Разное [26]
Численные методы [13]
Prolog [7]
Программы (алгоритмы), реализованные в прологе (простейшие варианты)

ПОГОДА
GISMETEO: Погода по г.Москва

 Работы 
Главная » Статьи » Численные методы

Многомерная минимизация, Метод градиента;

1.Определить точку минимума функции с точностью

ε=0.001.Определить число иттераций, обеспечивающих данную точность.

I=20*x12-40*x1*x2+ 20*x22-+17 (*);

2.Метод градиента;

3.Программа:

{$N+}

var alp,g: array[1..1000] of double;

x10,x11,x20,x21,f0,f1,z,h0,h1,min,a1,b1,a0,b0,n,m:double;

i,j,f:integer;

begin

writeln('vv/ x10 i x20');

readln(x10,x20);

f1:=20*x10*x10-40*x10*x20+20*x20*x20+17;f:=0;

repeat

f0:=f1;

h1:=1/1;

a1:=0;b1:=100;

repeat

h0:=h1;a0:=a1;b0:=b1;

for j:=1 to 100 do begin

alp[j]:=a0+j*h0;n:=40*x10-40*x20;

m:=40*x20-40*x10;

g[j]:=20*sqr(x10-alp[j]*(n))-40*(x10-alp[j]*(n))*(x20-alp[j]*

(m))+20*sqr(x20-alp[j]*(m))+17;

end;

min:=g[1];z:=0;

for j:= 2 to 100 do

if min>g[j] then begin min:=g[j] ;z:=alp[j]; end;

a1:=z-h0;

b1:=z+h0;

h1:=(b1-a1)/100;inc(f)

until h0<0.01;

x11:=x10-z*(40*x10-40*x20);

x21:=x20-z*(40*x20-40*x10);

f1:=20*x11*x11-40*x11*x21+20*x21*x21+17;

until (abs(f1-f0))<0.01);

writeln(' x1=',x11:7:5,' x2= ',x21:7:5,' f=',f1:9:8,,' itter= ',f); readln;

end.

4.Результаты:

Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International

vv/ x10 i x20v

12

4

x1=8.03200 x2=7.96800 f=17.08192000 itter=6

Минимальное значение функции * будет 17 при всех y=x;

Полученные значения приблизительно равны.

Функция i=x12*x22+(22-x1)2

6.Программа

{$N+}

var alp,g: array[1..1000] of double;

x10,x11,x20,x21,f0,f1,z,h0,h1,min,a1,b1,a0,b0:double;

i,j,f:integer;n,m:real;

begin

writeln('vv/ x10 i x20');

readln(x10,x20);

f1:=x10*x10*x20*x20+sqr(22-x10);f:=0;

repeat

f0:=f1;

h1:=1/1000;

a1:=0;b1:=1;

repeat

h0:=h1;a0:=a1;b0:=b1;

for j:=1 to 1000 do begin

alp[j]:=a0+j*h0;n:=2*x10*x20*x20-44+2*x10;

m:=2*x10*x10*x20;

g[j]:=(x10-alp[j]*(n))*(x20-alp[j]*m)+sqr(22-x10+alp[j]*(2*x10*x20*x20-44+2*x10));

end;

min:=g[1];z:=0;

for j:= 2 to 1000 do

if min>g[j] then begin min:=g[j] ;z:=alp[j]; end;

a1:=z-h0;

b1:=z+h0;

h1:=(b1-a1)/1000;

until h0<0.00000001;

x11:=x10-z*(2*x10*x20*x20-44+2*x10);

x21:=x20-z*(2*x10*x10*x20);

f1:=x11*x11*x21*x21+sqr(22-x11); inc(f);

until (abs(f1-f0))<exp(-1500*ln(10));

writeln(x11:7:5,' ',x21:7:5,' ',f1:9:8,'itter ',f); readln;

end.

7.Результаты:

Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International

vv/ x10 i x20v

1

1

22.60256 -0.08026 3.65828152 itter 2

Решением будет x=22 и y=0 .Значения приблизительно равны.






Категория: Численные методы | Добавил: gul (23.08.2009) | Автор: gul
Просмотров: 2174 | Теги: Метод градиента, Многомерная минимизация | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа

Скачать бесплатно!
Красивые ICQ-номера!!!

Поиск

Наша кнопка

             


НЕСПРАВЕДЛИВОСТЬ


Рейтинг@Mail.ru Каталог ссылок, Top 100.
Copyright Falen Angel © 2024