0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216

Нахождение корня уравнения методами итераций, хорд и Ньютона

26.06.2019, 20:14. Показов 9526. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Найти хотя бы один корень заданного уравнения с относительной точностью 0.1%. Реализовать на Pascal-метод простых итераций для уравнений. С клавиатуры вводить краевые точки интервала, начальное приближение. Кроме значения корня на печать выводить количество итераций.
2. Решить уравнение методом хорд c точностью 10-9 степени.

3. Составить программу для нахождения корня уравнения на отрезке [a;b] с абсолютной погрешностью Методом Ньютона. В программе предусмотреть подсчет и выдачу на печать количество итераций, необходимых для вычислений.
https://www.cyberforum.ru/cgi-bin/latex.cgi?arcsin(x)-\sqrt{1-0.4*x*x}; {x}_{0}=0.7
1)
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
#include "pch.h"
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
double find(double x, double eps, double a, double b)
{
    double x0; int iter = 0;
 
    cout << "x0= " << x << " ";
    do {
        x0 = x;
        x = sin(sqrt(1 - 0.4*x*x));
        iter++;
    } while (fabs(x0 - x) > eps && iter < 20000);
    cout << " iterations= " << iter << endl;
    return x;
}
double f(double x) {
    double v = sin(sqrt(1 - 0.4*x*x));
    return v;
}
int main()
{
    setlocale(LC_ALL, "rus");
    double c;
    double d;
    c = find(0.7, 0.1, 0, 1.5);
    cout << "Корень:" << c << " ";
    cout << "Функция в корне " << f(c);
    cin.get();
    return 0;
}
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
39
#include "pch.h"
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
double f(double x) {
    double v = sin(sqrt(1 - 0.4*x*x));
    return v;
}
double find(double x, double eps, double a, double b)
{
    double rez; 
    do {
        rez = a - (f(b)*(b - a)) / (f(b) - f(a));
if (f(a)*f(rez)<0) b=rez;
else if (f(rez)*f(b)<0) a=rez; else return rez;
        
        
        
    } while (fabs(b - a) > eps);
    
    
    return rez;
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    double c;
c = find(0.7, 0.000000001, 0, 1.5);
double d;
d = f(c);
    cout << "Корень:" << c<<" ";
    cout <<"Функция в корне: "<< d;
    
    cin.get();
    return 0;
}
3)
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
#include "pch.h"
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
double f(double x) {
    double v = sin(sqrt(1 - 0.4*x*x));
    return v;
}
double f_sh(double x) {
    double v_sh = -(0.8*cos(sqrt(-0.4*x*x + 1))) / (2 * sqrt(-0.4*x*x + 1));
    return v_sh;
}
double find(double x, double eps, double a, double b)
{
    int iter = 0; double x0;
 
    cout << "x0= " << x << " ";
    do {
        x0 = x;
        x = x0 - (f(x0) / f_sh(x0));
        iter++;
    } while (fabs(x0 - x) > eps && iter < 20000);
    cout << " iterations= " << iter << endl;
    return x;
}
 
    
int main()
{
    setlocale(LC_ALL, "rus");
    double c;
    
    c = find(0.7, 0.001, 0, 1.5);
    cout << "Корень:" << c << " ";
    cout << "Функция в корне " << f(c);
    cin.get();
    return 0;
}
Вопрос: в третьем задании у меня не находится корень. где можно проверить результаты? и желательно по шагам

Добавлено через 1 час 57 минут
Помогите, пожалуйста!

Добавлено через 2 часа 2 минуты
пожалуйстааа
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2019, 20:14
Ответы с готовыми решениями:

Методами простых итераций, касательных, деления отрезка найти приближенное значение корня уравнения
Язык С++, заранее благодарю , желательно 98 версия Дано действительной положительное число E. Методами простых итераций, касательных,...

Нахождение корня уравнения методами дихотомии и итерации
Решить уравнение sin(x+p/3) - 0,5x = 0 на отрезке с точностью e методами дихотомии и итерации. Лаборотная работа 1 Численное решение...

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

9
681 / 481 / 246
Регистрация: 10.06.2016
Сообщений: 2,241
26.06.2019, 21:12
dreems, так вы не то уравнение решаете, где у вас arcsin(x)?

Если решаете то, которое в программе, то забыли х
double v_sh = -(0.8*x*cos(sqrt(-0.4*x*x + 1))) / (2 * sqrt(-0.4*x*x + 1));
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 21:37  [ТС]
slava_psk, а я упростил sin (arcsinx)=x

Добавлено через 1 минуту
slava_psk, а где забыл?
0
681 / 481 / 246
Регистрация: 10.06.2016
Сообщений: 2,241
26.06.2019, 21:41
dreems, эээ так не годится, это будут разные уравнения. Смотрите мою формулу, при дифференцировании еще будет сомножитель х.
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 21:43  [ТС]
slava_psk, попробую исправить. А алгоритм вообще правильный у всех методов? У меня только из-за формулы не работает?
0
681 / 481 / 246
Регистрация: 10.06.2016
Сообщений: 2,241
26.06.2019, 21:56
Решаете не то уравнение, вы постройте графики функций того что в задании и того, что вы решаете. У того что в задании корень близко к 0.7.
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
26.06.2019, 22:04  [ТС]
slava_psk, попробую, спасибо
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
27.06.2019, 10:00  [ТС]
slava_psk, это нормально, что к меня в методе итераций получилось 4 итерации, в методе ньютона 3, а методе хорд 44?? Корень 0,767162
0
681 / 481 / 246
Регистрация: 10.06.2016
Сообщений: 2,241
27.06.2019, 10:19
Не могу точно сказать, нужно смотреть коды.
0
0 / 0 / 0
Регистрация: 26.03.2018
Сообщений: 216
27.06.2019, 10:26  [ТС]
slava_psk,
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
#include "pch.h"
#include <iostream>
#include <cmath>
#include <math.h>
#include <iomanip>
 
using namespace std;
double f(double x) {
    double v = asin(x) - (sqrt(1 - 0.4*x*x));
    return v;
}
double f_sh(double x) {
    double v_sh = 1 / (sqrt(-x * x + 1)) + (0.8*x) / (2 * sqrt(-0.4*x*x + 1));
    return v_sh;
}
double f1_iter(double x) {
    double v = sin(sqrt(1 - 0.4*x*x));
    return v;
}
double find_iter(double x, double eps, double a, double b)
{//итерациями
    double x0; int iter = 0;
 
    cout << "x0= " << x << " ";
    do {
        x0 = x;
        x = f1_iter(x);
        iter++;
    } while (fabs(x0 - x) > eps && iter < 20000);
    cout << " Количество итераций = " << iter << endl;
    return x;
}
 
double find_hord(double eps, double a, double b)
{//хорд
    double rez;
    int iter = 0;
     do
    {
        rez = a - ((f(a)*(b - a)) / (f(b) - f(a)));
        if (f(a)*f(rez) < 0) b = rez;
        else if (f(rez)*f(b) < 0) a = rez; else return rez;
        iter = iter + 1;
     } while (fabs(b - a) > eps && iter < 20000);
    cout << " Количество итераций = " <<iter << endl;
    
    
    return rez;
}
double find_n(double x, double eps, double a, double b)
{//ньютон
    int iter = 0; double x0;
 
    cout << "x0= " << x << " ";
    do {
        x0 = x;
        x = x0 - (f(x0) / f_sh(x0));
        iter++;
    } while (fabs(x0 - x) > eps && iter < 20000);
    cout << " Количество итераций = " << iter << endl;
    return x;
}
int main()
{
    setlocale(LC_ALL, "rus");
    
    cout << "Корень методом итераций: " << setprecision(10)<< find_iter(0.7, 0.001, -1.5, 1.5) << endl;
    cout << endl;
    cout << "Корень методом хорд: " << setprecision(10)<< find_hord(0.00000001, -1, 1) << endl;
    cout << endl;
    cout << "Корень методом Ньютона: " << setprecision(10)<<find_n(0.7, 0.001, -1, 1) << endl;
    system("pause");
    return 0;
}
еще у меня почему-то не выводится количество итераций в методе хорд, могу только в цикле вывод написать и так посмотреть, но это не красиво
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2019, 10:26
Помогаю со студенческими работами здесь

Нахождение корня уравнения методом хорд
y=x^2-4

Нахождение корня уравнения методом хорд
Описать функционал (horda f a b eps), который методом хорд находит корень Xk,уравнения F(x)=0 на отрезке осуществования корня с точностью...

Найти корень нелинейного уравнения четыремя методами: половинного деления, касательных, хорд, итераций
Задание. Отделить корни уравнений F(x) = 0 и уточнить значения корней (или одного из них) с точностью е = 10-3. Напечатать приближенные...

Нахождение корня уравнения методом простых итераций
Помогите пожалуйста! Составить программу, реализующую на компьютере метод простых итераций.(найти програмное вычисление корня) Вот...

Как реализовать нахождение корня уравнения методом секущей и методом хорд
никак не могу понять эти методы


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

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

Новые блоги и статьи
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru