Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2022, 13:57   #1
Darklight
Пользователь
 
Регистрация: 08.07.2022
Сообщений: 29
По умолчанию Решение нелинейных уравнений. Метод итерации.

1) Отделить корни уравнения программно.
2) Уточнить один из корней уравнения методом итерации с точностью | е = 0,001,
указать число итераций. (c++)

Уравнение: 2e^x + 3x + 1= 0
Изображения
Тип файла: png Screenshot_1.png (2.7 Кб, 15 просмотров)

Последний раз редактировалось Darklight; 05.10.2022 в 14:06.
Darklight вне форума Ответить с цитированием
Старый 06.10.2022, 00:05   #2
Darklight
Пользователь
 
Регистрация: 08.07.2022
Сообщений: 29
По умолчанию

Код:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    int iter = 0;
    float y, x, yf, xp, fx;
    float  a = -2, b = 2, x0 = -1, xprev = 100, e = 0.001, M = 43.17107, m = 4.02035;
    float lam = 1 / M, q = 1 - m / M;

    cout << "------------------------------------" << endl;
    cout << "|    x    |      y      |     y'   |" << endl;
    cout << "------------------------------------" << endl;
    for (float i = a; i <= b; i += 0.25) {
        y = 2 * exp(i) + 3 * i + 1;
        yf = 2 * exp(i) + 3;
        cout << "|" << setw(9) << i << "|" << setw(9) << y << "    |" << setw(10) << yf << "|" << endl;
    } do {
        xp = x0;
        fx = 2 * exp(xp) + 3 * xp + 1;
        x0 = x0 - lam * fx;
        xprev = x0 - xp;
        iter += 1;
    } while (abs(xprev) > abs(e* ((1 - q) / q)));

    cout << "------------------------------------" << endl;
    cout << "----------------------------------------------------" << endl;
    cout << "|   Xi    |   Ф(Xi-1)   |   Ошибка   | О. Ошибка |" << endl;
    cout << "----------------------------------------------------" << endl;
    cout << "|" << setw(9) << xp << "|" << setw(10) << x0 << "   |" << setw(12) << abs(xp-x0) << " |" << setw(10) << abs((xp - x0)*(q / (1 - q))) << " |" << endl;
    cout << "----------------------------------------------------" << endl;
    cout << "Iteration: " << iter << endl;
    cout << "\nx0 = " << xp << endl;
}
Darklight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C#] Решение нелинейных уравнений методом итерации Маргарита23 Помощь студентам 3 12.12.2018 22:06
Решение нелинейных уравнений метод Ньютона Ангелина А Помощь студентам 19 03.06.2014 23:01
Решение нелинейных алгебраических уравнений методом простой итерации MurkyMargosha Помощь студентам 1 21.10.2013 20:06
Решение нелинейных алгебраических уравнений методом простой итерации. felicity Помощь студентам 3 04.06.2011 23:24
Метод простых итерации для нелинейных уравнений. Подскажите где ошибка DuHbka Помощь студентам 15 31.05.2009 22:46