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

Найти корни уравнения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно сделать задачу по С++ http://www.cyberforum.ru/cpp-beginners/thread1770185.html
В Хватайском регионе действует сеть обычных магазинов и магазинов «Сэконд Хенд». А) Обычный магазин может содержать не более 5-ти товаров, которые регистрируются структурой (номер товара, цена, количество). Магазин может получить товар и продать товар в требуемом количестве. Результат продажи – общая стоимость покупки. Льготникам товар продается по сниженной цене, в зависимости от...
C++ Эффективное использование памяти Добрый день! Подскажите, пожалуйста, какой способ будет эффективнее всего использовать память при чтении строк из файла? Думала над чтением строк Блоками, но тут загвоздка в том, что блок определённой длины будет разрезать некоторые строки.. Допустим, блок 100бит может разрезать какую-то строку. http://www.cyberforum.ru/cpp-beginners/thread1770182.html
C++ Определить массив структур, каждый элемент которого хранит информацию об успеваемости учеников школы
В программе определить массив структур. Каждый элемент массива хранит информацию об успеваемости учеников школы: Номер, Фамилия, Имя, Отчество, возраст, класс, оценка по математике, оценка по русскому языку, оценка по информатике. Заполнить массив структур с клавиатуры. В программе: 1) посчитать средний возраст учеников из 5Б класса; 2) посчитать количество учеников с тройками по...
Посчитать сумму цифр и сумму делителей данного целого числа C++
помогите пожалуйста Составить программу, которая решает следующие задачи, используя только переменные динамической памяти: посчитать сумму цифр данного целого числа; посчитать сумму делителей данного целого числа; определить, является ли данное целое число простым.
C++ Обработка исключений при работе с файлами http://www.cyberforum.ru/cpp-beginners/thread1770163.html
Кто может помочь с обработкой исключений для файла? Нужно чтобы обработчик перехватывал исключение и предлагал ввести путь к файлу заново. Заранее благодарен откликнувшимся. FILE* file; fopen_s(&file, path, "w");
C++ Обьясните, почему данная конструкция неправильна? Обьясните, почему такая конструкция неправильна. class Base { \\... protected : void* a; \\... } Base() { a = new double* ; a = new double; // ошибка: выражение должно быть указателем. подробнее

Показать сообщение отдельно
EVP
319 / 241 / 43
Регистрация: 14.12.2010
Сообщений: 462
24.06.2016, 19:33     Найти корни уравнения
Цитата Сообщение от _liv_ Посмотреть сообщение
Тут многие с пеной у рта доказывают, что математика программистам не нужна... Ну-ну...
Не слушай их
Тут численное решение предложили:
Кликните здесь для просмотра всего текста
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <cmath>
#include <complex>
 
#define NMAX 20
 
typedef std::complex<double> complex;
 
typedef struct SPolinom
{
    complex  mas[NMAX];
    int pow;
}*PPolinom, TPolinom;
 
typedef struct SRoot
{
    complex  mas[NMAX];
    int num;
}*PRoot, TRoot;
 
complex FPol(TPolinom &p, complex &x)
{
    int i;
    complex tmp = complex(0, 0);
 
    for (i = 0; i <= p.pow; i++)
        tmp = tmp + pow(x, i)*p.mas[i];
 
    return tmp;
}
 
 
void FindAllRoot(TPolinom &pp, TRoot &r)
{
    int i, j;
    complex x1, x0;
    TPolinom defp, p;
 
    p = pp;
    r.num = p.pow;
 
    for (i = 0; i<r.num; i++)
    {
        defp.pow = p.pow - 1;
 
        for (j = 0; j<p.pow; j++)
            defp.mas[j] = p.mas[j + 1] * complex(j + 1);
 
        x1 = complex(1, 1);
 
        do
        {
            x0 = x1;
 
            x1 = x0 - FPol(p, x0) / FPol(defp, x0);
        } while (abs(FPol(p, x1))>1e-12);
 
        r.mas[i] = x1;
 
        for (j = p.pow - 1; j >= 0; j--) p.mas[j] = p.mas[j] + p.mas[j + 1] * x1;
        for (j = 0; j<p.pow; j++) p.mas[j] = p.mas[j + 1];
        p.pow--;
    }
}
 
void main(void)
{
    setlocale(LC_ALL, "Russian");
 
    int i = 0;
    TPolinom p;
    TRoot r;
 
    //f(x)=6x^4+19x^3-7x^2-26x+12
    p.pow = 4;
    p.mas[0] = complex(12, 0);
    p.mas[1] = complex(-26, 0);
    p.mas[2] = complex(-7, 0);
    p.mas[3] = complex(19, 0);
    p.mas[4] = complex(6, 0);
 
    FindAllRoot(p, r);
 
    std::cout << "\n Найдено" << r.num << " корней, у полинома " << p.pow << " степени.";
 
    for (i = 0; i<r.num; i++)
        std::cout << "\nX[" << i + 1 << "]/корень/ = " << real(r.mas[i]) << " + i * " << imag(r.mas[i]);
}
 
Текущее время: 23:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru