Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 09:08   #1
PettitScarabay
Новичок
Джуниор
 
Регистрация: 16.12.2012
Сообщений: 1
По умолчанию Pascal

Код:
Uses Crt;
const e=0.01;
Var a,b,alfa,beta:array[1..100] of real;
q,t,x:real;
k:integer;
 
function f(x:real):real;
begin
f:=sqr(x);
end;
 
begin
Clrscr;
k:=1;
write('vvedite konstanty razlichimosti >0 q=');
readln(q);
write('vvedite interval a=');
readln(a[1]);
write('vvedite interval b=');
readln(b[1]);
while (b[k]-a[k]) > e do
begin
alfa[k]:=((b[k]+a[k])/2)-q;
beta[k]:=((b[k]+a[k])/2)+q;
if f(alfa[k]) > f(beta[k]) then
begin
a[k+1]:=alfa[k];
b[k+1]:=b[k];
end
else
begin
a[k+1]:=a[k];
b[k+1]:=beta[k];
end;
k:=k+1;
end;
begin
x:=(a[k]+b[k])/2;
end;
writeln('x=',x:5:3,'  f(x)=',f(x):5:3);
readkey
end.
ИЛИ
Код:
uses crt;
const q=0.618;
 
function f(x: real): real;
begin
f:=sqr(x)*x-x+exp(-x);
end;
 
var a, alfa, b, beta:array[1..100] of real;
x, e: real;
k:integer;
begin clrscr;
k:=1;
write('vvedite tochnost >0 e=');
readln(e);
write('vvedite interval a=');
readln(a[1]);
write('vvedite interval b=');
readln(b[1]);
while (b[k]-a[k])>e do
begin
alfa[1]:=a[1]+(1-q)*(b[1]-a[1]);
beta[1]:=a[1]+q*(b[1]-a[1]);
if f(alfa[k])>f(beta[k]) then
begin
a[k+1]:=alfa[k];
b[k+1]:=b[k];
alfa[k+1]:=beta[k];
beta[k+1]:=a[k+1]+q*(b[k+1]-a[k+1]);
writeln ('f(beta[k+1])=',f(beta[k+1]):0:4);
end
else
begin
a[k+1]:=a[k];
b[k+1]:=beta[k];
beta[k+1]:=alfa[k];
alfa[k+1]:=a[k+1]+(1-q)*(b[k+1]-a[k+1]);
writeln ('f(alfa[k+1])=',f(alfa[k+1]):0:4);
end;
k:=k+1;
end;
x:=(a[k]+b[k])/2;
writeln ('x=',x:5:3,' f(x)=',f(x):5:3);
readkey
end.
Изображения
Тип файла: jpg Untitled-1.jpg (244.3 Кб, 126 просмотров)

Последний раз редактировалось PettitScarabay; 16.12.2012 в 09:14.
PettitScarabay вне форума Ответить с цитированием
Старый 16.12.2012, 12:22   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Попробую угадать: второй код правильный?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа реализации метода покоординатного спуска naty7773 Помощь студентам 2 23.12.2012 19:00
Методы оптимизации: метод Ньютона и метод наискорейшего спуска ruslanGacurap Помощь студентам 0 30.01.2012 13:54
Метод наискорейшего спуска Михаил1800 Помощь студентам 1 19.07.2011 13:30
алгоритм покоординатного спуска mimi_mimi Паскаль, Turbo Pascal, PascalABC.NET 0 20.06.2010 18:23
Алгоритм наискорейшего спуска для любого количества аргументов целевой функции Evil Sun Общие вопросы C/C++ 5 08.05.2009 13:18