С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
1

Нахождение корня целого числа методом Ньютона

27.11.2015, 21:49. Просмотров 848. Ответов 6
Метки нет (Все метки)

//Не судите строго, только начал изучать, подскажите как вторую формулу в цикл поместить))(где for и далее-не верно)Спасибо!//
/*
Задача 5.2 Нахождение корня целого числа методом Ньютона.
Вводится число для извлечения квадратного корня - А
Вводится корень (предполагаемый) – К
Реализуется формула:
К = А/К + К ( формула 1 – используется только один раз)
Следующий и все последующие разы реализуется расчет корна по формуле:
К = (А/К+К)/2. (формула 2)
Расчет прекращается, когда значение К, полученное в предыдущем расчете. будет равно значению текущего расчета.
Создать блок-схему, по блок-схеме написать программу, отладить. Протестировать
*/
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
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <locale.h>
#include <cmath>
 
using namespace std;
 
int main ()
{
    setlocale (0,"");
    int n, i;   
    double A, K, C, D;
    cout <<"\t==Нахождение корня целого числа методом Ньютона==\n\n"<<endl;
    cout <<"Введите число для извлечение квадратного корня ";
    cin >> A;
    K = sqrt (A);
    cout <<"Извлечение квадратного корня "<<K<<"" <<endl;
 
    cout <<"Введите корень = "<<K<<endl;
    cin >>K;
    K=A/K + K;
    cout <<"Ответ на первую формулу А/К + К = "<<K<<endl;
 
    for (D=0; 1 <=D; i++)
 
    {
        cout <<"Введите корень = "<<D<<endl;
        C = (A/D+D)/2;
 
    }
 
    cout << "Ответ на вторую формулу = "<<C<<endl;
 
 
    return 0;
    
}
Добавлено через 23 минуты
Заранее спасибо!

Добавлено через 1 час 31 минуту
Кто чем может, помогите!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2015, 21:49
Ответы с готовыми решениями:

Нахождение корня уравнения x^3 - 2x^2 - 4x + 7 = 0 на отрезке [-3, 3] с точностью еps методом Ньютона
найти решение уравнения x3 – 2x2 –4x + 7 = 0 на отрезке с точностью е ...

Решение уравнения методом Ньютона. Локализация корня
Собственно, программа имеется, все довольно таки просто, но необходимо...

Нахождение корня методом хорд
Помогите дописать программу, Билдер в 5-ой строке выдаёт синтаксическую ошибку:...

Поиск корня нелинейного уравнения простой итерацией, половинным делением, методом Ньютона
Найти корень уравнения sin x = x с погрешностью не более 0.000001 и для каждого...

Нахождение корня уравнения методом казательных
Реализация метода касательных. При ручном решении и во всяких калькуляторах...

6
zss
Модератор
Эксперт С++
7509 / 6866 / 4336
Регистрация: 18.12.2011
Сообщений: 18,177
Завершенные тесты: 1
27.11.2015, 22:02 2
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
#include <iostream>
#include <clocale>
#include <cmath>
using namespace std;
 
int main ()
{
    setlocale (LC_ALL,"Rus");
    cout <<"\t==Нахождение корня целого числа методом Ньютона==\n"<<endl;
    cout <<"Введите число для извлечение квадратного корня:";
    double A;cin >> A;
    cout <<"Введите приближенное значение квадратного корня из"<<A<<":";
    double K;cin>>K;
    K+=A/K;
    double Kold;
    do
    {
        Kold=K;
        K = (A/K+K)/2.0;
    }while (abs(Kold-K)>1e-10);
    cout << "Значение корня = "<<K<<endl;
    system("pause"); 
    return 0;
}
1
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
27.11.2015, 22:50  [ТС] 3
Попробовал, но мне кажется вторая формула должна как-то выводиться на экран?)...А вообще спасибо))
Ещё не понял Kold=K; K-можно назвать любым значением?НУ и соответственно while (abs(Kold-K)>1e-10); могли бы пояснить?))
0
zss
Модератор
Эксперт С++
7509 / 6866 / 4336
Регистрация: 18.12.2011
Сообщений: 18,177
Завершенные тесты: 1
27.11.2015, 22:55 4
Kold=K; - запоминаем предыдущее значение K
while (abs(Kold-K)>1e-10); повторяем цикл пока разница со значением предыдущей итерации не станет достаточно малая.
1
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
27.11.2015, 23:01  [ТС] 5
Соответственно через for ни как не написать? Я думаю что они имели ввиду видеть, как отображаются числа до того пока не совпадёт с K."Расчет прекращается, когда значение К, полученное в предыдущем расчете. будет равно значению текущего расчета."...Так можно сделать?)
0
zss
Модератор
Эксперт С++
7509 / 6866 / 4336
Регистрация: 18.12.2011
Сообщений: 18,177
Завершенные тесты: 1
27.11.2015, 23:08 6
Цитата Сообщение от ShmelVG Посмотреть сообщение
будет равно значению текущего расчета
double представление приближенное, поэтому равными считаются числа отличающееся на какое-то малое значение, я взял для примера 10-10.
Если хотите выводить результат каждой итерациито внесите вывод внутрь цикла.
Ну, а если ооочень хочется заменить while на for:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <clocale>
#include <cmath>
using namespace std;
 
int main ()
{
    setlocale (LC_ALL,"Rus");
    cout <<"\t==Нахождение корня целого числа методом Ньютона==\n"<<endl;
    cout <<"Введите число для извлечение квадратного корня:";
    double A;cin >> A;
    cout <<"Введите приближенное значение квадратного корня из"<<A<<":";
    double K;cin>>K;
    
    double Kold=K;
    for(K+=A/K;abs(Kold-K)>1e-10; K = (A/K+K)/2.0)
    {
         Kold=K;
         cout << "Значение корня = "<<K<<endl;
    }
    system("pause"); 
    return 0;
}
1
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
27.11.2015, 23:24  [ТС] 7
Великие умы!)))Невероятно(для меня ещё), спасибо))Очень выручили!!
0
27.11.2015, 23:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2015, 23:24

Нахождение корня нелинейного уравнения методом итерации
Прошу помочь разобраться в ошибке. Есть рабочий код с++ для нахождения корня...

Нахождение корня уравнения методом половинного деления
Вообщем дорогие друзья спасайте. Препод сказал сделать программу которая решает...

Нахождение корня методом деления отрезка пополам
Задание: Сделал для f(x)=0, но нужно f(x)=x... Не получается у меня...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru