Решение нелинейных уравнений

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    121,07 Кб
  • Опубликовано:
    2012-05-09
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Решение нелинейных уравнений








Лабораторная работа

«Решение нелинейных уравнений»


Постановка задачи


 [0,1; 2]

Решить нелинейное уравнение шаговым методом, методом половинного деления, методом Ньютона и методом простой итерации.

Вычислим шаг по формуле:

h=

h=0,1.

 

 


1. Теоретическая часть


Шаговый метод

Суть метода:

) Разбиение промежутка на число n интервалов.

) Вычисление таблицы значения функции при изменении величины на интервале [a, b] с шагом h.

Из анализа таблицы на предмет смены знака выбираем интервал изоляции корня.

Методы уточнения корня

Метод половинного деления

Суть метода:

Метод основан на последовательном сужении интервала, пока длинна интервала не станет меньше заданной точности eps.

Алгоритм:

) Найти первый вариант корня по формуле: х=(а+b)/2. Где [a, b] - интервал изоляции корня, найденный в шаговом методе.

) Затем нужно найти значение функции в точках «а» и «х».

) Проверить условие F(a)*F(x)<0, если условие выполнено, то корень расположиться на отрезке [a, x], в этом случае точку b нужно переместить в точку x, если условие не выполнено, то корень находится на отрезке [x, b], в этом случае точку «а» нужно переместить в точку «х».

) Перейти к первому пункту.

Алгоритм продолжается до тех пор пока не выполнится условие F(x)<eps.

Метод Ньютона

Условия сходимости корня:

) Начальное приближение к корню должно быть выбрано на одной из границ по условию:

F(x0)*F» (x0)>0.

Геометрически это означает, что первая касательная, проведенная в точке x0, к кривой F(x0) должна пересекать ось «х» на интервале [a, b].

Выполняя построение касательных в точках (xi, F(xi)) - получаем последовательность {xi+1} до тех пор, пока не выполнится критерий точности.

Метод простой итерации

Метод простой итерации основан на замене исходного уравнения F(x)=0 эквивалентным уравнением x=S(x) которое получается из исходного уравнения, если мы выражаем из него «х».

Окончательное значения выбирается из нескольких вариантов проверяемых условием |S’ (x)|<1 где «х» принадлежит интервалу [a, b].

 

. Реализация в Mathcad


1) Задание диапазона значений Х от 0.1 до 2 с шагом 0.1


) Описание функции f(x)



Ответ: 1.375

3. Реализация в С++


Шаговый метод

Текст программы:

#include «stdafx.h»

#include <math.h>

#include <iostream>

#define n 20

#define co 0.000001

using namespace std;f (double x)

}main()

{xn, xk, h, a, b;(«vvedi xn, xk\n»);>>xn>>xk;=fabs (xk-xn)/n;ma[n], mb[n];k=0; a=xn; b=a+h;(b<=xk+h/100.)

{(f(a)*f(b)<0) {ma[k]=a; mb[k]=b; k++;}=b; b=b+h;

}(k==0) printf («\n net solutions!\n»);{printf(«\n number roots k=%d\n», k);(«\n intervalj:\n»);(«\n a \t b\n»);(int i=0; i<k; i++) printf («\n % 5.2f \t % 5.2f\n», ma[i], mb[i]);

}st; cin>>st;

}

Вывод:

нелинейный уравнение mathcad итерация


4. Метод Ньютона


Текст программы:

#include «stdafx.h»

#include <math.h>

#include <iostream>

#define n 100namespace std;f (double x)

{return sin (log(x)) - cos (log(x))+2*log(x);}f1 (double x)

{return (cos (log(x))+sin (log(x))+2)/x;

}f2 (double x)

{return (-2*sin (log(x))+1)/pow (x, 2);

}main()

{double a, b, c, x, xkor;eps=0.001;(«vvedi a, b\n»);

// выбор начального приближения

if (f(a)*f2 (a)>0) x=a;x=b;(«\n nachalnoe priblizhenie kornya x0=%1f \n», x);k=0;(fabs(f(x))>eps)

{k++; x=x-f(x)/f1 (x);

} xkor=x;(«\n koren x=%1f\n», xkor);(«\n chislo shagov interacii po metody Nutona k=%d \n», k);st; cin>>st;

}

Вывод:


5. Метод половинного деления


Текст программы:

#include «stdafx.h»

#include <math.h>

#include <iostream>

#define n 100namespace std;f (double x)

{return sin (log(x)) - cos (log(x))+2*log(x);

}main()

{double a, b, c, xkor;eps=0.001;(«vvedi a, b\n»);>>a>>b;k=0;(fabs(b-a)>eps)

{k++;=(b+a)/2.;(f(a)*f(c)<=0) b=c;a=c;

}=(a+b)/2.;(«\n koren x=%6.3f\n», xkor);(«\n number shagov interacii k=%d\n», k);st;>>st;

}

Вывод:

Похожие работы на - Решение нелинейных уравнений

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!