Страница 1 из 1

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

СообщениеДобавлено: 04.06.2012 15:11:20
jet
Вот, искал инфу по одномерной минимизации, и нашел:
Код: Выделить всё
    (*************************************************************************
    Процедура минимизации значения функции методом золотого сечения.
     
    Оптимизирует функцию одного  переменного 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.
Только отвечать просьба как для средних умов)))))
Заранее спасибо за ответы.

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

СообщениеДобавлено: 04.06.2012 15:19:01
Ism
Inc(i)
Dec(i)

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

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

А гугл что, отключили ?

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

СообщениеДобавлено: 04.06.2012 15:21:20
jet
Пардон, просто мозги кипят, не сообразил.
А контексте этой программы зачем это нужно?

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

СообщениеДобавлено: 04.06.2012 15:27:51
Ism
Теоретически эта команда быстрее , чем другие способы

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

СообщениеДобавлено: 04.06.2012 15:40:40
jet
Все, до меня дошло.
Всем спасибо за участие.
ЗЫ Кто-нибудь может посоветовать примеры кодов по численным методам на паскале?

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

СообщениеДобавлено: 04.06.2012 16:17:27
vada
Google может. Сайтов с исходниками на паскале как у дурака фантиков.
ЗЫ. А какие методы интересуют? Их тысячи.

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

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

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

СообщениеДобавлено: 04.06.2012 16:51:10
tema
Ну тогда велкам в раздел помощи за вознаграждение. Там многое NTFS решает :)

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

СообщениеДобавлено: 04.06.2012 18:05:50
vada
Вот такая нелегкая доля заочника

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

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

СообщениеДобавлено: 04.06.2012 22:06:01
jet
Язык большого значения не имеет, главное логику алгоритма понять. Препод тоже не по паскалю рекомендовал книгу.)))))
А за ответ спасибо. Обязательно последую рекомендациям.

Добавлено спустя 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;

Ну, вот так вроде правильно.
Кто-то прокомментирует?

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

СообщениеДобавлено: 05.06.2012 10:07:19
vada
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 итераций


Ну что-то типа этого.

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

СообщениеДобавлено: 05.06.2012 23:14:55
jet
Конструктивно.
Большое спасибо!
Так и умным стать можно)))))))

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

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

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

СообщениеДобавлено: 06.06.2012 09:53:52
vada
Платить за контрольные - тупик. Учатся для себя а не для зачета в зачетке.
По мне так лишних знаний не бывает, ну кроме только некоторых тайн за знание к которых ногти клещами рвать начинают. :D