Решение нелинейных уравнений
Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 10.05.2012 |
Размер файла | 207,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Лабораторная работа
«Решение нелинейных уравнений»
Постановка задачи
[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)<eps.
Метод Ньютона
Условия сходимости корня:
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 <math.h>
#include <iostream>
#define n 20
#define co 0.000001
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, xk\n»);
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=%d\n», k);
printf («\n intervalj:\n»);
printf («\n a \t b\n»);
for (int i=0; i<k; i++) printf («\n % 5.2f \t % 5.2f\n», ma[i], mb[i]);
}
char st; cin>>st;
}
Вывод:
нелинейный уравнение mathcad итерация
4. Метод Ньютона
Текст программы:
#include «stdafx.h»
#include <math.h>
#include <iostream>
#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, b\n»);
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=%1f\n», xkor);
printf («\n chislo shagov interacii po metody Nutona k=%d \n», k);
char st; cin>>st;
}
Вывод:
5. Метод половинного деления
Текст программы:
#include «stdafx.h»
#include <math.h>
#include <iostream>
#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, b\n»);
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.3f\n», xkor);
printf («\n number shagov interacii k=%d\n», k);
char st;
cin>>st;
}
Вывод:
Размещено на Allbest.ru
Подобные документы
Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.
курсовая работа [2,1 M], добавлен 12.12.2013Методы решения нелинейных уравнений: прямые и итерационные. Методы решения трансцендентных, алгебраических уравнений. Метод деления отрезка пополам, Ньютона, простой итерации. Поиск корня уравнения методом простой итерации с помощью электронных таблиц.
контрольная работа [2,4 M], добавлен 16.12.2011Тестирование модуля отыскания корня уравнения методом половинного деления. Схема алгоритма тестирующей программы. Численное интегрирование по методу Симпсона с оценкой погрешности по правилу Рунге. Проверка условий сходимости методов с помощью MathCAD.
курсовая работа [1,1 M], добавлен 04.02.2011Численные методы решения нелинейных уравнений, используемых в прикладных задачах. Составление логической схемы алгоритма, таблицы индентификаторов и программы нахождения корня уравнения методом дихотомии и методом Ньютона. Ввод программы в компьютер.
курсовая работа [220,0 K], добавлен 19.12.2009Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Разработка с использованием приложения Mathcad алгоритма и программы решения нелинейного уравнения методами касательных, половинного деления и хорд. Решение с помощью ее заданных нелинейных уравнений. Создание графической иллюстрации полученных решений.
курсовая работа [665,7 K], добавлен 22.08.2013