Что такое Inc(i) ?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Что такое Inc(i) ?

Сообщение jet » 04.06.2012 15:11:20

Вот, искал инфу по одномерной минимизации, и нашел:
Код: Выделить всё
    (*************************************************************************
    Процедура минимизации значения функции методом золотого сечения.
     
    Оптимизирует функцию одного  переменного F.
     
    Параметры:
        A,B      - отрезок [A,B], на котором ищется минимум функции F.
        N        - число шагов метода
     
    После выхода переменные A и B содержат границы   отрезка,  на  котором
    находится решение задачи.
     
    Алгоритм проводит 2+N вычислений функции F.
    *************************************************************************)
    procedure GoldenSectionOptimize(var A : Double;
         var B : Double;
         const N : Integer);
    var
        i : Integer;
        S1 : Double;
        S2 : Double;
        U1 : Double;
        U2 : Double;
        FU1 : Double;
        FU2 : Double;
    begin
        S1 := (3-Sqrt(5))/2;
        S2 := (Sqrt(5)-1)/2;
        U1 := A+S1*(B-A);
        U2 := A+S2*(B-A);
        FU1 := F(U1); <--- как это понимать ?  :unsure:
        FU2 := F(U2);
        i:=1;
        while i<=N do
        begin
            if FU1<=FU2 then
            begin
                B := U2;
                U2 := U1;
                FU2 := FU1;
                U1 := A+S1*(B-A);
                FU1 := F(U1);
            end
            else
            begin
                A := U1;
                U1 := U2;
                FU1 := FU2;
                U2 := A+S2*(B-A);
                FU2 := F(U2);
            end;
            Inc(i);
        end;
    end;

Что ето такое? Inc(i);
В конце перед предпоследним end.
Только отвечать просьба как для средних умов)))))
Заранее спасибо за ответы.
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение Ism » 04.06.2012 15:19:01

Inc(i)
Dec(i)

увеличивают, уменьшают значение целого числа на 1

http://www.realcoding.net/article/view/734

А гугл что, отключили ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Что такое Inc(i) ?

Сообщение jet » 04.06.2012 15:21:20

Пардон, просто мозги кипят, не сообразил.
А контексте этой программы зачем это нужно?
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение Ism » 04.06.2012 15:27:51

Теоретически эта команда быстрее , чем другие способы
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Что такое Inc(i) ?

Сообщение jet » 04.06.2012 15:40:40

Все, до меня дошло.
Всем спасибо за участие.
ЗЫ Кто-нибудь может посоветовать примеры кодов по численным методам на паскале?
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение vada » 04.06.2012 16:17:27

Google может. Сайтов с исходниками на паскале как у дурака фантиков.
ЗЫ. А какие методы интересуют? Их тысячи.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Что такое Inc(i) ?

Сообщение jet » 04.06.2012 16:48:58

- одномерная минимизация функции методом золотого сечения;
- вычисление корней полинома методом хорд(способом пропорциональных частей);
- решение системы линейных алгебраических уравнений методом Гаусса;
- решение системы линейных алгебраических уравнений методом Зейделя;
- численное интегрирование (по формуле Симпсона);
- решение дифференциального уравнения методом Эйлера(задача Коши);
- и еще какая-то страшная задача, в которой упоминается интерполяционный многочлен Лагранжа.
Большинство из вышеперечисленных слов меня пугают одним своим звучанием.
При этом подразумевается, что я еще и работающие программки нацарапать должен.
Вот такая нелегкая доля заочника)))))
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение tema » 04.06.2012 16:51:10

Ну тогда велкам в раздел помощи за вознаграждение. Там многое NTFS решает :)
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: Что такое Inc(i) ?

Сообщение vada » 04.06.2012 18:05:50

Вот такая нелегкая доля заочника

Заочником быть тяжело. Сам не был, но догадываюсь т.к. учился и на дневном и на вечернем...
Но! Я бы Вам посоветовал математику этих методов поучить. В жизни пригодится. Тем более что сложного там ничего нет. Это самое простое из прикладной математики.
Есть такая простенькая книжка "Решение инженерных задач на ЭВМ" (в инете она есть http://www.twirpx.com/file/9706/ и еще много где). Там правда примеры на фортране, но достаточно просто описаны требуемые вам численные методы.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Что такое Inc(i) ?

Сообщение jet » 04.06.2012 22:06:01

Язык большого значения не имеет, главное логику алгоритма понять. Препод тоже не по паскалю рекомендовал книгу.)))))
А за ответ спасибо. Обязательно последую рекомендациям.

Добавлено спустя 34 минуты 29 секунд:
Вот, господа.
Выношу на суд то, что я считаю программой.
Задача: найти минимум на указанном отрезке (а=1,b=-0,85), с точностью до E=0,01.
F(x)=x^2+a*e^(b*x)
Код: Выделить всё
program zadanie_1
         var a,b,E,x,x1,x2,y1,y2,S : Double;
       
    begin
        write('Введите значение a,   a='); readln(a);
        write('Введите значение b,   b='); readln(b);
        write('Введите значение E,   E='); readln(E);

        S:=(1+sqrt(5))/2;
        repeat
   begin
                   x1 := b-((b-a)/S);
                   x2 := a+((b-a)/S);
                   y1 :=sqr(x1)+(a*(exp(b*x1)));
                   y2 :=sqr(x2)+(a*(exp(b*x2)));
                      if y1>=y2
      then 
          a:=x1
      else
        b:=x2;
     end
          until abs(b-a)<E
        x:=(a+b)/2;
        writeln('При x=',x,' функция имеет минимальное значение на заданном участке');
    end;

Ну, вот так вроде правильно.
Кто-то прокомментирует?
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение vada » 05.06.2012 10:07:19

1. begin end в конструкции repeat until лишние
2. Что будет если b или x1 или x2 раны нулю? Если есть деление ВСЕГДА надо проверять знаменатель на ноль. Экспоненту тоже.
3. Цикл repeat until имеет способность никогда не заканчиваться. Следует итерацию ограничить некоторым числом. Например 50. Т.е. задать переменную значение которой будет на каждом шаге итерации увеличиваться.
Код: Выделить всё
var
  I: Integer;
.......

i:=1;
repeat
......
Inc(I);
until (I>50) or (abs(d-a)<E);

if (abs(d-a)<E) then
  // Решение найдено
else
// решение не найдено за 50 итераций


Ну что-то типа этого.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Что такое Inc(i) ?

Сообщение jet » 05.06.2012 23:14:55

Конструктивно.
Большое спасибо!
Так и умным стать можно)))))))

Добавлено спустя 5 минут 7 секунд:
tema писал(а):Ну тогда велкам в раздел помощи за вознаграждение. Там многое NTFS решает :)

Если бы я был готов платить за контрольные, я бы их не делал.
Все на уровне кафедры решается даже без наличия контрольной, в итоге дешевле выходит, чем купить контрольные.
Просто хочется разобраться самому. Если у меня маленький базис знаний по математике и программированию, еще не значит, что я не хочу узнать что-то новое.
Но в любом случае спасибо)))
jet
новенький
 
Сообщения: 16
Зарегистрирован: 30.10.2011 22:21:49

Re: Что такое Inc(i) ?

Сообщение vada » 06.06.2012 09:53:52

Платить за контрольные - тупик. Учатся для себя а не для зачета в зачетке.
По мне так лишних знаний не бывает, ну кроме только некоторых тайн за знание к которых ногти клещами рвать начинают. :D
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru