Форум программистов, компьютерный форум CyberForum.ru

Функция: найти все корни, используя метод касательных - C++

Восстановить пароль Регистрация
 
grinch92
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 5
14.04.2012, 01:04     Функция: найти все корни, используя метод касательных #1
Здравствуйте,помогите с программой пожалуйста. Суть задачи такова :для функции Название: Безымянныйч.jpg
Просмотров: 160

Размер: 7.4 Кб найти все корни используя метод касательных.Я вот набросал кое-что,но выводит почему то только один корень..Что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <cstdlib>
#include <iostream>
#include <math.h>
#define e 0.0001
using namespace std;
 
int fact(double x) {
 int y=1;
 for (int k = 1; k <= x; k ++)
 y=y*k;
 return y;
}
 
float f(float x){
 float F;
 for (int k = 0; k <= 10; k ++)
 { 
 F+=pow(-1,k)*(((float)(fact(19-k)))/((float)(fact(k)*fact(20-2*k))))* pow(4* pow(x,2),10-k);
 }
 return F*10;}
 
float f1(float x){
 float F;
 for (int k = 0; k <= 10; k ++)
 { 
 F+=pow(-1,k)*(((float)(fact(19-k)))/((float)(fact(k)*fact(20-2*k))))*pow(4,10-k)*2*(10-k)* pow(x,2*(10-k)-1);
 }
 return F*10;}
 
float f2(float x){
 float F;
 for (int k = 0; k <= 10; k ++)
 { 
 F+=pow(-1,k)*(((float)(fact(19-k)))/((float)(fact(k)*fact(20-2*k))))*pow(4,10-k)*2*(10-k)*(2*(10-k)-1)* pow(x,2*(10-k)-2);
 }
 return F*10;}
 
float kos()
{ float a,b,x,dx;
int k=0;
if (f(a)*f2(a)>0) {
    dx=b;
}
else dx=a;
do {
    dx-=f(dx)/f1(dx);
        k++;
 }
 while (fabs(f(dx))>= e);
return dx;
}
 int main() {
    float a,b,x;
    int k=0;
cout<<("Vvedite a: ");
cin>>a;
cout<<("Vvedite b: ");
cin>>b;
cout<<(" metod kasatelnuh");
x=kos();
cout<<("\nZnachenie kornya na zadannom promejutke = ")<<x;
cout<<("\nKollichestvo iteracui = ")<<k;
                system("PAUSE");
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 01:04     Функция: найти все корни, используя метод касательных
Посмотрите здесь:

Найти все целые корни уравнения ax3+bx2+cx+d=0 C++
C++ найти все корни уравнения на заданном интервале [a;b] с заданной точностью
C++ Найти все корни уравнения на заданном интервале
C++ Задана функция x^3 (частный случай кубического полинома). Найти корни.
Найти все целые корни уравнения C++
Найти корни уравнений ax^3+bx^2+cx=0 и y^3-ay^2-b=0, используя процедуру. Есть ли у этих уравнений совпадающие корни? C++
C++ Распарсить нелинейное уравнение и найти все его корни
C++ Найти точно все корни уравнения указанными методами
C++ Как найти все корни уравнения?
Найти все целые корни кубического уравнения C++
C++ Метод Ньютона (касательных)
Найти все корни функции f(x) на интервале [-1;1] методом дихотомии с погрешностью 0.02. f(x)= (e^x)-arccos(x) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
14.04.2012, 12:15     Функция: найти все корни, используя метод касательных #2
Ээ.... Хорошо. Ты ввел a и b c клавиатуры. А потом? В функции kos ты обьявил новые a и b, и их даже не инициализировал. Убери из функции kos обьявление a и b и поставь их в аргументы функции. А дальше посмотрим.
Yandex
Объявления
14.04.2012, 12:15     Функция: найти все корни, используя метод касательных
Ответ Создать тему
Опции темы

Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru