Нахождение корней уравнения методом итераций - C (СИ)
Формулировка задачи:
Нахождение корней уравнения
В коде в первом сообщении не ясно, что такое L, и каким образом нужно выражать f2(x), имея f1(x)=5*x3-1-x.
Первичное приближение 0.6, достаточное условие уточнения eps = 0.01...10-7 (на выбор пользователя).
Если не сложно, обьясните код по ссылке и выражение f2, либо прошу помощи другим кодом.
Решение задачи: «Нахождение корней уравнения методом итераций»
textual
Листинг программы
#define x1 0.6 #define x2 0.8 //--------------------- double funcit(double x) { return 5*pow(x,3)-1; } //--------------------- double func(double x) { return 5.0*pow(x,3.0)-x-1.0; } //------------------ //main //------------------ xm=x1; // x0 берем за левую границу уточнения i=0; //счетчик количества итераций while((fabs(xm-xx)>E)&&(fabs(func(xm))>E)) //E - требуемое уточнение, 0.01...10^(-7) { i++; xx=xm; //Нынешний X(n-2) становится X(n-1), при первом шаге просто инциализация xm=funcit(xx); //Вычисляется нынешний X(n), все прошлые значения смещаются на 1 назад. //То есть прошлый X(n) стал нынешним X(n-1) }
Объяснение кода листинга программы
- В первой строке определены две константы: x1 и x2. Значение x1 равно 0.6, а значение x2 равно 0.8.
- Во второй функции, funcit, определен вид функции для уточнения корней. Эта функция принимает один аргумент типа double, называемый x, и возвращает значение 5*pow(x,3)-1.
- В третьей функции, func, определен вид функции, которую мы пытаемся уточнить. Эта функция также принимает один аргумент типа double, называемый x, и возвращает значение 5.0*pow(x,3.0)-x-1.0.
- В блоке main определены две переменные: xm и i. Значение xm сначала установлено в x1, а значение i установлено на 0.
- Затем следует цикл while, который продолжается до тех пор, пока два условия не станут ложными. Первое условие проверяет, больше ли абсолютное значение разности между xm и xx заданного значения E. Второе условие проверяет, больше ли абсолютное значение функции xm заданного значения E.
- Если цикл while завершается, то значение i увеличивается на 1, а значение xx становится xm.
- Затем значение xm присваивается результат вызова функции funcit с аргументом xx. Это вычисляет новое значение xm, которое является предыдущим значением xx, смещенным на 1 назад.
- Цикл while повторяется до тех пор, пока не будет достигнуто требуемое уточнение.
- После завершения цикла while выводится значение i, которое представляет собой количество итераций, выполненных для достижения требуемого уточнения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д