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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Метод деления отрезка пополам 
:(
    Опции темы
Alexey91
  Дата 31.3.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Всем привет!
Дали такую задачу: методом деления отрезка пополам найти с точностью EPS=0,0001 корень уравнения cos(2/x)-2*sin(1/x)+1/x=0.

Не понимаю в чем заключается метод деления отрезка пополам, и как с помощью него найти корень уравнения с вышеуказанной точностью..(
PM   Вверх
zim22
Дата 31.3.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Alexey91 @  31.3.2009,  18:07 Найти цитируемый пост)
метод деления отрезка пополам,

дихотомия. один из методов поиска информации в упорядоченнной последовательности элементов.


--------------------
PM MAIL   Вверх
Anikmar
Дата 31.3.2009, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Alexey91 @  31.3.2009,  18:07 Найти цитируемый пост)
метод деления отрезка пополам

На сколько я помню, мы проходили этот метод под названием "Метод половинного деления". Достаточно просто - проверять знаки и приближаться к пересечению графика функции с осью х (собственно там и будет корень). Думаю в гугле навалом описаний.
PM MAIL ICQ   Вверх
mes
Дата 31.3.2009, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Alexey91 @  31.3.2009,  17:07 Найти цитируемый пост)
Не понимаю в чем заключается метод деления отрезка пополам

Не понимаю, какое отношение вопрос по алгоритмам имеет к разделу "общие вопросы по C++"?  smile 


--------------------
PM MAIL WWW   Вверх
Anikmar
Дата 31.3.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(mes @  31.3.2009,  20:17 Найти цитируемый пост)
Не понимаю, какое отношение вопрос по алгоритмам имеет к разделу "общие вопросы по C++"?    

Вы торопитесь.  smile  Дальше нужно будет реализовать данный алгоритм на С++, я полагаю. У автора реальные проблемы: с чего начать и он начал с понимания задачи, что правильно.  smile 


Alexey91, если сами писать не хотите - идите в центр помощи.
PM MAIL ICQ   Вверх
mes
Дата 31.3.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Anikmar @  31.3.2009,  19:21 Найти цитируемый пост)
Вы торопитесь.  smile  Дальше нужно будет реализовать данный алгоритм на С++, я полагаю. У автора реальные проблемы: с чего начать и он начал с понимания задачи, что правильно.  smile 

Ну так попросить исправить код, попросить написать код, следуя этому алгоритму и узнать что из себя представляет данный алгоритм это три разных вопроса, и согласно правилам форумам должны быть оформлены отдельно smile

а по теме вот:
http://www.toehelp.ru/theory/informat/lecture12.html


--------------------
PM MAIL WWW   Вверх
Alexey91
Дата 1.4.2009, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Нет, хочу написать я сам, пока думаю, спасибо, за ответы ;)
PM   Вверх
Alexey91
Дата 3.4.2009, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Код

#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
 return cos(2/x)-2*sin(1/x)+1/x;
}

main()
{
 int i; float a,b,c,e,x;
 
 printf("Enter a= "); scanf("%f",&a);
 printf("Enter b= "); scanf("%f",&b);
 
 i=1;
 
 printf("Enter e= "); scanf("%f",&e);
 
 c=(a+b)/2;
 
 while(fabs(b-a > e) && f(c)!= 0)
 {
  if(f(a)*f(c)<0) b=c;
  else a=c;
  c=(a+b)/2; i++;
 }
 
 printf("%f",c);
 
 getch();
 return 0;
}


Вот, только мне сказали, что надо еще рекурсию сделать, как это можно оформить?

PM   Вверх
Ln78
Дата 3.4.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Цитата(Alexey91 @  3.4.2009,  07:22 Найти цитируемый пост)
while(fabs(b-a > e) && f©!= 0)


Alexey91, скобка не там стоит у fabs.
А рекурсия - то, что в цикле оформить как отдельную функцию, которая вызывает сама себя до тех пор, пока не найдёт с нужной степенью приближения решение. Смысла большого нет, но раз требуется - сделай, сложностей тоже больших не должно быть.
PM MAIL   Вверх
Alexey91
Дата 7.4.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Код

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>

float e=0.0001;

float form(float d)
{
 return cos(2/d)-2*sin(1/d)+1/d;
}

float rek(float x, float y)
{
  float z=(x+y)/2;    
  if(form(x)*form(z) < 0) y=z;
  else x=z;
   
  if(fabs(y-x) > e && form(z) != 0)
  {
   return rek(x,y);
  }
  else return z;
}

main()
{
 float a,b;
 printf("Enter a,b: "); scanf("%f %f",&a,&b);
 printf("%f",rek(a,b));
 
 getch();
 return 0;
}


Похоже получилось  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.