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

Методом Ньютона решить линейное уравнение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно написать небольшую програмку на С++ http://www.cyberforum.ru/cpp-beginners/thread253124.html
Привет! Помогите написать прогрумму небольшую на С++. Мне очень нужно для ООП. Заранее спасибо =)
C++ Сложение двух строк Проблема: не могу получть результат. Что у меня не так? class base { private: char* str; int size; public: base( char *str1) { http://www.cyberforum.ru/cpp-beginners/thread253098.html
ПРИШЛИТЕ МНЕ ПОЖАЛУЙСТA ФАЙЛ stdlib.h ДЛЯ VS2006 C++
ПРИШЛИТЕ МНЕ ПОЖАЛУЙСТA ФАЙЛ stdlib.h ДЛЯ VS2006
C++ интерполяция по формуле в стирлинга
Здравствуйте, у меня не получается создать программу с динамическим вводом данных. Вот программа со статическим вводом данных. Помогите ее переделать:) # include <iostream.h> # include <math.h> # include <conio.h> # include <stdlib.h> const n=10; double x = {0.2930, 0.4690, 0.6450, 0.8210, 0.9970, 1.1730, 1.3490, 1.5250, 1.7010, 1.8770, 2.0530}; double y = {-0.2540, -0.0630, 0.0150,...
C++ Алгоритм действий http://www.cyberforum.ru/cpp-beginners/thread253088.html
Вот есть формула такая. Значит,я так понимаю: сначала вычисляется рекурсивной функцией факториал, другая функция будет возводить в степень. Потом уже полученное значение икса используем для вычисления синуса этого значения? Только бы еще записать...да,да учебник мне в помощь,ясное дело.
C++ Определить массу водорода, находящийся под давлением в баллоне Определить массу водорода, находящийся под давлением в баллоне. Добавлено через 1 минуту Подскажите пожалуйста, какой формулой пользоваться? подробнее

Показать сообщение отдельно
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240

Методом Ньютона решить линейное уравнение - C++

06.03.2011, 19:18. Просмотров 688. Ответов 1
Метки (Все метки)

Всем привет и хорошего настроения!
Решаю вычмат. Методом Ньютона надо решить линейное уравненьице. Сам метод запроган. Хочу запрогать процесс нахождения начального приближения x0.
Мои рассуждения: с помощью графика определяю границы промежутка, где сидят все корни уравнения. Далее иду с шагом step=0.1 от левого конца этого промежутка, пока не встречу такое х0, что f(x0)*fdx(x0)<=0, где fdx - производная функции. Функция здесь меняет знак=> на этом небольшом промежутке есть корень=> уменьшаю шаг :step*=0.1 и повторяю тоже самое, пока f(x0) по модулю не станет <=0.1 - после этого прекращаю вычисления и беру этот x0.
У меня всё зацикливается. Помогите, пжлст, понять, в чем проблема и советом.
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
#include<iostream>
#include<cmath>
using namespace std;
 
double fx (double n) // вычисление самой функции
{
    return (n*n*n-2.25*n*n-0.25*n+1.5);
}
double fdx (double n) // вычисление производной
{
    return (3*n*n*-2.25*2*n-0.25);
}
 
double X0(double step, int deg) // поиск нач. приближения, границы корней: [-1, 2.1]
{
    double x0=-1;
    while (deg!=0) // deg - степень полинома
    {
        if (fx(x0)*fdx(x0)<=0)
        {
            do
            {
                return X0(0.1*step,deg);
            }
            while (abs(fx(x0))>=0.1);
 
            if (abs(fx(x0))<0.1)
                return x0;
            
        }
        deg--;
        x0+=step;
    }
    
}
int main()
{
    double st=0.1; 
    cout<<X0(st, 3)<<endl;
    
    return 0;
}
Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru