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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 23:27   #21
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Когда записао вот так код:
Код:
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const double epsilon = 1e-3;
double f1(double x);
double f2(double x);
double df1(double x);
double df2(double x);
void Kasateln(double (*f) (double),double (*df) (double), double start, double end );

//---------------------------------------------
int main()
{
cout<<"   --------Metod Kasatelnyix---------"<<endl<<endl;
Kasateln(&f1,&df1(x),0,2);
Kasateln(&f1,&df2(x),0,2);

system("pause");
}
double f1(double x )
{
    return 9.25*pow(x,4)-3*x*x+6.25*x;
}
double f2(double x)
{
return 2*x-log10(x)-7;
}

double df1(double x)
{
return 37*pow(x,3) - 6*x + 6.25;
}

double df2(double x)
{
return 2 - 1/(x*log(10.0));
}



//для метода касательных нужна производная функции df(x) 
void Kasateln(double (*f) (double),double (*df) (double), double start, double end )
{
double x,xn=start;
do{
        x=xn;
        xn=x-f(x)/df(x);
        }
while(fabs(xn-x)>2*epsilon);
cout << x << endl;;
}
Выдало одну единственную ошибку
error C2065: 'x': undeclared identifier
prikolist вне форума Ответить с цитированием
Старый 14.06.2009, 23:44   #22
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
...
int main()
{
cout<<"   --------Metod Kasatelnyix---------"<<endl<<endl;
Kasateln(&f1,&df1,0,2);
Kasateln(&f1,&df2,0,2);
...
pu4koff вне форума Ответить с цитированием
Старый 14.06.2009, 23:46   #23
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

А теперь выдало результат 2 нуля.
prikolist вне форума Ответить с цитированием
Старый 14.06.2009, 23:52   #24
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А должно было выдать что-то другое?
Измените диапазон поиска корней с 0..2 на -100..100, может не нули будут. или на бумажке найдите результат и вбейте потом соответствующий диапазон.
pu4koff вне форума Ответить с цитированием
Старый 15.06.2009, 00:05   #25
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

При этом
Код:
Kasateln(&f1,&df1,-100,100);
Kasateln(&f1,&df2,-1,2);
выдаёт такой результат, но факт в том,что должен получится один корень, хоть один, но его не вижу, вот фото.
Изображения
Тип файла: jpg 111.jpg (12.7 Кб, 11 просмотров)
prikolist вне форума Ответить с цитированием
Старый 15.06.2009, 00:20   #26
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

2 функции - 2 корня. В чем проблема?
pu4koff вне форума Ответить с цитированием
Старый 15.06.2009, 00:22   #27
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

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

И в качестве диапазона для обеих функций нужно указывать [-2; 0]
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.06.2009, 13:06   #28
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Выдаёт результат, 2 цифры "-1". Но мне нужно один корень из двух. Вот фото результат, если написать вот так.
Код:
Kasateln(&f1,&df1,-2,0);
Kasateln(&f1,&df2,-2,0);
Изображения
Тип файла: jpg 1.jpg (18.0 Кб, 129 просмотров)
prikolist вне форума Ответить с цитированием
Старый 15.06.2009, 13:40   #29
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, имя так и не исправили.
Код:
Kasateln(&f1,&df1,-2,0);
Kasateln(&f1,&df2,-2,0);
Во-вторых, попробуйте вызывать так:
Код:
Kasateln(&f2,&df2,0.01,50);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.06.2009, 13:42   #30
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В-третьих, вызываете функцию поиска корня функции методом касательных 2 раза, получаете 2 корня. Что не так? Почему это должен быть один корень?)
pu4koff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не компилится исходник решения СЛАУ м.прост.итераций.тупит mem.h. Who is nber 1? avi2109 Общие вопросы C/C++ 7 08.11.2008 16:14
Не компилится данный исходник. В чём проблемма? AngelOfDeath Общие вопросы C/C++ 4 16.10.2008 00:34