Вопрос задан 07.08.2018 в 09:22. Предмет Информатика. Спрашивает Шестакова Ксения.

Написать программу на Си (метод ньютона) В соответствии с этим методом каждое следующее приближение

к корню ищется по формуле: Итерационный процесс уточнения корня заканчивается при достижении условия: < ε где ε – заданная точность. уравнение: 3х-4ln-5=0 отрезок содержащий корень [2;4] точность 10^(-4)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Omar Adema.
Как-то так, прилагаю и сам сpp-файл :)

#include<stdio.h>#include<math.h>
const double EPS = 1e-4;
double f(double x){ return 3*x - 4 * log(x) - 5;}
double fp(double x){ return 3 - 4 * (1/x);}
int main(){ double prev = 2, cur; //prev - x (k-1)ое, cur - x k-тое cur = prev - f(prev)/fp(prev); while(abs(cur - prev) > EPS) { prev = cur; cur = cur - f(cur)/fp(cur); }
printf("%lf\n", cur); return 0;}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Я попробую помочь вам с написанием программы на Си, используя метод Ньютона для решения уравнения 3х-4ln-5=0 на отрезке [2;4] с точностью 10^(-4). Вот примерный код, который я сгенерировал:

```c #include #include

// Функция, задающая уравнение double f(double x) { return 3 * x - 4 * log(x) - 5; }

// Производная функции double f_prime(double x) { return 3 - 4 / x; }

// Метод Ньютона для нахождения корня double newton(double a, double b, double eps) { // Проверяем, что функция меняет знак на отрезке if (f(a) * f(b) > 0) { printf("Функция не меняет знака на отрезке\n"); return NAN; } // Выбираем начальное приближение double x0 = (a + b) / 2; // Повторяем итерации, пока не достигнем нужной точности while (fabs(f(x0)) > eps) { // Вычисляем следующее приближение по формуле Ньютона x0 = x0 - f(x0) / f_prime(x0); } // Возвращаем найденный корень return x0; }

int main() { // Задаем границы отрезка и точность double a = 2; double b = 4; double eps = 1e-4; // Вызываем метод Ньютона и выводим результат double root = newton(a, b, eps); printf("Корень уравнения на отрезке [%.2f; %.2f] с точностью %.0e равен %.4f\n", a, b, eps, root); return 0; } ```

Я надеюсь, что это вам поможет. Если у вас есть какие-то вопросы или пожелания, пожалуйста, напишите мне.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос