Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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




ЛАБОРАТОРНАЯ РАБОТА №1

Решение нелинейного уравнения с одной неизвестной. Методы отделения и уточнения корней.

Постановка задачи.Для данного нелинейного уравнения y(x)=0 с одной неизвестной величиной на промежутке [a,b] отделить корни с шагом h(Шаговым методом)и уточнить корень с точностью ε:

  • методом половинного деления
  • методом Ньютона
  • методом простой итерации

Идея метода

Название метода Выбор начального значения Итерационная формула Окончание процесса вычисления
Шаговый метод x=a y=f(x) – значение функция в точке x x1=x+h – следующее значение переменной x y1=f(x1) - значение функция в точке x1 y*y1<0 - признак интервала изоляции x1<=b
Метод половинного деления [a,b] – интервал изоляции x=(a+b)/2 – середина интервала f(a) –значение функции в точке a f(x) –значение функции в точке x если f(a)*f(x)<0, то выбираем [a,x] если f(a)*f(x)>0, то выбираем [x,b] |f(x)|<ε
Метод Ньютона x0 = a или x0 = b f2(x)-вторая производная функции f(x) f(x0)*f2(x0)>0 f1(x) – первая производная функции f(x) xi+1 = xi - f(xi)/f1(xi) |f(xi)|<ε
Метод простой итерации (1 способ) привести уравнение к виду x= φ(x) x0 = a или x0 = b |φ(a)|<1 |φ(b)|<1 если |φ(a)| > |φ(b)| ,то x0=a если |φ(a)| < |φ(b)| ,то x0=b xi+1= φ(xi) |f(xi)|<ε
Метод простой итерации (2 способ) f1(x) – первая производная функции f(x) если |f1(a)| > |f1(b)| ,то x0=a если |f1(a)| < |f1(b)| ,то x0=b с=1/max(|f1(a)|;|f1(b)|) xi+1 = xi – c*f(xi) |f(xi)|<ε

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

Постановка задачи:шаговым методом найти интервал изоляции корня нелинейного уравнения ln(x) - 2·x + 2,5 = 0 на интервале [1; 2], шаг h = 0,1.

Программа на языке CИ #include <iostream.h> #include <iomanip.h> #include <math.h>   double F (double x) { return (log(x)-2*x+2.5);}   int main() { double a,b,x0,x1,h; int N;   cout<<"Vvedite a b"<<endl; cin>>a>>b; cout<<"Vvedite chislo razbien"<<endl; cin>>N;   h=(b-a)/N;   cout.precision(5); cout.setf(ios::left);   cout<<"_____________________________________"<<endl;   cout<<setw(12)<<"x"<<setw(12)<<"F(x)"<<endl;   cout<<"_____________________________________"<<endl;   x0=a; cout<<setw(12)<<x0<<setw(12)<<F(x0)<<endl;   while(x1<=b) { x1=x0+h; cout<<setw(12)<<x1<<setw(12)<<F(x1)<<endl;   if(F(x0)*F(x1)<0) cout<<"na interv ["<<x0<<","<<x1<<"] est koren"<<endl;   x0=x1; }   return 0;}




.

mylektsii.ru - Мои Лекции - 2015-2019 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал