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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Простые итерации [Дам на пиво] 
:(
    Опции темы
bubl1k
  Дата 15.12.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Найти корень уравнения р(х)=0 на интервале (А, В) с точностью Е=10-4. Известно, что р(х) на интервале (А, В) непрерывна и монотонна.

Уравнение: 4*x - 5*log(x) - 5

A: —
B: 2.2

Это необходимо сделать методом простых итераций, ума не приложу как это делать.  smile 

Тому кто поможет, даю скромную сумму в размере 100 рублей на пиво.

Зарание огромное спасибо smile
PM MAIL ICQ   Вверх
bubl1k
Дата 15.12.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h>

using namespace std;

//Функция для вывода кириллицы
void rus(char*a)
{
    char*b=new char[strlen(a)+1];
    CharToOem(a,b);
    cout<<b;
    delete[] b;
}

float function(float x)                                                   
{
    return 4*x - 5*log(x) - 5;                                                              
}

int main ()
{

float x, y, e = 0.0001;
rus("Введите значение:");
cin >> x;                                                           
x = function(x);

do 
{
y = x;
x = function(y);   
}
while(fabs(x - y) < e);

cout << x << endl ;
    
getch();
    
}



Вот так у меня получилось, правильно считаете?
PM MAIL ICQ   Вверх
Annihilator
Дата 15.12.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



посчитай вручную да проверь


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
bubl1k
Дата 16.12.2008, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне просто дали кусок кода на паскале, я переделал.

Если бы знак как считать давно бы уже составил алгоритм, может кто-нибудь подскажет хотя бы это?
PM MAIL ICQ   Вверх
Dmi3ev
Дата 16.12.2008, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а основание у логарифма какое??? сделаю...


--------------------

PM MAIL   Вверх
bubl1k
Дата 16.12.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Dmi3ev, десятичный, буду премного благодарен smile
PM MAIL ICQ   Вверх
Dmi3ev
Дата 16.12.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



отпишись только, работает или нет и про на пиво не зубудь, если это то, что ты хотел)))
Код

//---------------------------------------------------------------------------

#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------


int main()
{
double el=0.0001;
double a=0.0;
double b=0.0;
double val=0.0;
cout<<"Enter A: ";
cin>>a;
cout<<endl;
cout<<"Enter B: ";
cin>>b;
cout<<endl;
double h=a;
val=4*h-5*log(h)-5;
while (((val>el) || (val<(-1)*el)) && h<=b)
 {
  h+=el;
  val=4*h-5*log(h)-5;
  cout<<"x"<<h<<endl;
 }

if (val>=-el && val<=el)
 cout<<"Answer:"<<endl<<"X="<<h<<endl;
else
 cout<<"No answers on (A,B)"<<endl;

return 0;
}
//---------------------------------------------------------------------------

вводи А=0, B=1000000, будет тогда решение наверняка. отрицательные А и В не вводи... Я этого не предусматривал, к тому же, сказано, что функция непрерывна.
Про на пиво, я не шучу)))



--------------------

PM MAIL   Вверх
bubl1k
Дата 16.12.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Работать то работает, только это точно правильно, ведь у меня написано что значение A отсутсвует?

Свои обещание про пиво я не забываю.
PM MAIL ICQ   Вверх
Dmi3ev
Дата 16.12.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ну задай его 0, по умолчанию, ведь А не может быть отрицательным, потому что тогда log(x), где x=a будет как-то хреново получаться... а так правильно.. выдает решение с точность до 0,0001... те, если функция принимает значение 0,0001 или меньше и -0,0001 или больше одновременно, то это и есть решение с заданной точностью...

Добавлено через 3 минуты и 14 секунд
      |--------------|----------------|
-0,0001            0                 0,0001
вот в этих пределах и ищется решение... и выдается значение х, при котором это произошло, на калькуляторе посчитай выражение, зная х...
и поймешь, правильно или нет...


--------------------

PM MAIL   Вверх
bubl1k
Дата 16.12.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ладно, фиг с ним, надеюсь подойдет, скидывай сюда или в личку wmz-кошелек.
PM MAIL ICQ   Вверх
Dmi3ev
Дата 16.12.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

//---------------------------------------------------------------------------

#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------


int main()
{
double el=0.0001;
double a=0.0;
double b=0.0;
double val=0.0;
cout<<"Enter A: ";
cin>>a;
cout<<endl;
cout<<"Enter B: ";
cin>>b;
cout<<endl;
double h=a;
val=4*h-5*log(h)-5;
while (((val>el) || (val<(-1)*el)) && h<=b)
 {
  h+=el;
  val=4*h-5*log(h)-5;
  cout<<"x="<<h<<" Value="<<val<<endl;
 }

if (val>=-el && val<=el)
 cout<<"Answer:"<<endl<<"X="<<h<<endl;
else
 cout<<"No answers on (A,B)"<<endl;

cin>>h;

return 0;
}
//---------------------------------------------------------------------------

здесь еще и значение функции печатается, чтобы у тебя сомнений не было...

Добавлено через 36 секунд
ща кину кошелек в сообщении...


--------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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