Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

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

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Алгоритм продолжается до тех пор пока не выполнится условие F (x). Затем нужно найти значение функции в точках «а» и «х». F (x) на интервале должна быть непрерывна и монотонна. Задание диапазона значений Х от 0.1 до 2 с шагом 0.1. Разбиение промежутка на число n интервалов. Printf («n chislo shagov interacii po metody Nutona k=%d n», k); Нелинейный уравнение mathcad итерация. Printf («n nachalnoe… Читать ещё >

Решение нелинейных уравнений (реферат, курсовая, диплом, контрольная)

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

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

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

[0,1; 2]

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

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

h=

h=0,1.

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

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

Суть метода:

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

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

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

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

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

Суть метода:

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

Алгоритм:

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

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

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

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

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

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

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

1) F (x) на интервале [a, b] должна быть непрерывна и монотонна.

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

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].

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

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

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

Ответ: 1.375

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

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

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

#include «stdafx.h»

#include

#include

#define n 20

#define co 0.1

using namespace std;

double f (double x)

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

}

void main ()

{

double xn, xk, h, a, b;

printf («vvedi xn, xkn»);

cin>>xn>>xk;

h=fabs (xk-xn)/n;

double ma[n], mb[n];

int k=0; a=xn; b=a+h;

while (b<=xk+h/100.)

{

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

a=b; b=b+h;

}

if (k==0) printf («n net solutions! n»);

else {printf («n number roots k=%dn», k);

printf («n intervalj: n»);

printf («n a t bn»);

for (int i=0; i

}

char st; cin>>st;

}

Вывод:

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

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

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

#include «stdafx.h»

#include

#include

#define n 100

using namespace std;

double f (double x)

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

double f1 (double x)

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

}

double f2 (double x)

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

}

void main ()

{double a, b, c, x, xkor;

double eps=0.001;

printf («vvedi a, bn»);

cin>>a>>b;

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

if (f (a)*f2 (a)>0) x=a;

else x=b;

printf («n nachalnoe priblizhenie kornya x0=%1f n», x);

int k=0;

while (fabs (f (x))>eps)

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

} xkor=x;

printf («n koren x=%1fn», xkor);

printf («n chislo shagov interacii po metody Nutona k=%d n», k);

char st; cin>>st;

}

Вывод:

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

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

#include «stdafx.h»

#include

#include

#define n 100

using namespace std;

double f (double x)

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

}

void main ()

{double a, b, c, xkor;

double eps=0.001;

printf («vvedi a, bn»);

cin>>a>>b;

int k=0;

while (fabs (b-a)>eps)

{k++;

c=(b+a)/2.;

if (f (a)*f (c)<=0) b=c;

else a=c;

}

xkor=(a+b)/2.;

printf («n koren x=%6.3fn», xkor);

printf («n number shagov interacii k=%dn», k);

char st;

cin>>st;

}

Вывод:

Показать весь текст
Заполнить форму текущей работой