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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2015, 16:48   #1
gabach
Пользователь
 
Регистрация: 23.12.2014
Сообщений: 14
По умолчанию Методы итераций и половинного деления [Delphi]

Не определяет корни методом итераций, что не так сделал. Помогите, пожалуйста.

Код:
program ProjectIteratDel;

{$APPTYPE CONSOLE}
uses
  SysUtils,
  math;

function Rus(S:String):String;
var i:byte;
begin
Result:='';
for i:=1 to Length(S) do
case S[i] of
'А'..'п': Result:=Result+Chr(Ord(S[i])-64);
'р'..'я': Result:=Result+Chr(Ord(S[i])-16);
'Ё': Result:=Result+Chr(240);
'ё': Result:=Result+Chr(241);
else
Result:=Result+S[i];
end;
end;

var
  x,x0,x1,xl,xr,y,yl,eps:real;
  k,n,n1,i:integer;
  F:boolean;

begin
writeln(rus('Введите x0,xl,xr,eps,k,n'));
readln(x0,xl,xr,eps,k,n);
writeln;
n1:=n;
//Метод итераций
writeln(rus('Метод итераций:'));
writeln;
F:=False;
For i:=1 to n do
  begin
    x1:=(exp(-3*x0)-sin(x0)-1.5);
    F:=Abs(x0-x1)<eps;
    x0:=x1;
    if F then break;//Решение найдено=> Выход из цикла
  end;
  if F then
    writeln('Eps=',eps:k+2:k,' ':3,'x=',x0:k+3:k,' ':3,'n=',i:2)
  else
    writeln(Rus('Заданная точность '),eps:k+2:k,rus(' не достигнута за '),n,rus(' шагов'));
writeln;


//Метод половинного деления
writeln(rus('Метод половинного деления:'));
writeln;
  yl:=(exp(-3*xl)-sin(xl)-1.5);
  F:=False;
  for i:=1 to n1 do
    begin
      x:=(xl+xr)/2;
      y:=(exp(-3*x)-sin(x)-1.5);
      if Y*YL>0 then
        xl:=x
      else
        xr:=x;
      F:=Abs(xr-xl)<eps;
      if F then break;//Решение найдено=> Выход из цикла
    end;
  if F then
    writeln('Eps=',eps:k+2:k,' ':3,'x=',x:k+3:k,' ':3,'n=',i:2)
  else
    writeln(Rus('Заданная точность '),eps:k+2:k,rus(' не достигнута за '),n1,rus(' шагов'));
readln;
end.
gabach вне форума Ответить с цитированием
Старый 25.01.2015, 17:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А половинным делением правильно находит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.01.2015, 17:19   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А половинное деление разве не подразумевает бин.поиск?
У Вас его вообще нет, не?
Poma][a вне форума Ответить с цитированием
Старый 25.01.2015, 17:28   #4
gabach
Пользователь
 
Регистрация: 23.12.2014
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
А половинное деление разве не подразумевает бин.поиск?
У Вас его вообще нет, не?
Я и не знаю, что такое бин.поиск

Цитата:
Сообщение от Stilet Посмотреть сообщение
А половинным делением правильно находит?
Половинным делением правильно находит корень -0.17

Последний раз редактировалось gabach; 25.01.2015 в 17:33.
gabach вне форума Ответить с цитированием
Старый 25.01.2015, 17:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Я и не знаю, что такое бин.поиск
Ну вот типа этого: http://www.programmersforum.ru/showthread.php?t=91550
Цитата:
Половинным делением правильно находит корень -0.17
Интересно...
А попробуй вот такое: http://programmersforum.ru/showpost....52&postcount=3
I'm learning to live...

Последний раз редактировалось Stilet; 25.01.2015 в 17:45.
Stilet вне форума Ответить с цитированием
Старый 25.01.2015, 17:58   #6
gabach
Пользователь
 
Регистрация: 23.12.2014
Сообщений: 14
По умолчанию

Спасибо, попробую
gabach вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод итерация и метод половинного деления Delphi gabach Помощь студентам 1 24.12.2014 07:43
Методы половинного деления, хорд , касательных , простых операций flc Помощь студентам 1 06.12.2014 02:29
Метод половинного деления с одним неизвестным (сделать в Delphi с формой) Anton5474 Помощь студентам 4 12.03.2014 22:29
Численные методы. Решение нелинейного уравнения методом половинного деления. gree Помощь студентам 1 11.11.2009 18:36
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08