![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задание 5. Решить уравнения и системы уравнений методом простой итерации:
Решить уравнения и системы уравнений методом простой итерации:
1) Рассмотрим функцию y(x) = 5*sin(2x)-√ (1-x). Найдем нули функции, используя метод простой итерации. Схематично график функции можно изобразить следующим образом: > plot(5*sin(2*x)-sqrt(1-x), x=-8..5); Представим функцию в итерационном виде x = x-m*(5*sin(2x)-√ (1-x)) и рассмотрим отрезок [0; 0, 5], где содержится один из нулей функции. Найдем производную нашей функции и значения производной на концах отрезка: > diff(5*sin(2*x)-sqrt(1-x), x); > subs({x = 0}, 10*cos(2*x)+1/2/(1-x)^(1/2)); > subs({x = 0.5}, 10*cos(2*x)+1/2/(1-x)^(1/2)); Получим, что f’(x) = 10*cos(2*x)+1/2/(1-x)^(1/2); min f’(x) = 0.7; max f’(x) = 10.5. Подберем константу: m = 1/max f’(x) = 0.095; q = 1-min f’(x)/max f’(x) = 0.933. Тогда итерационный вид функции будет выглядеть следующим образом: f(x) = x-0.095*(5*sin(2x)-√ (1-x)) Program Iteracia; uses crt; var x, y, p: real; e, q: real; function f(x: real): real; begin f: =5*sin(2*x)-sqrt(1-x); end; begin clrscr; write ('x= '); readln(x); write ('e= '); readln(e); write ('q= '); readln(q); repeat y: =x-0.095*f(x); p: =y-x; x: =y; until abs(p)< =e*(1-q)/q; writeln ('x=', x: 8: 3); readln; end. Выполнение программы: > x, e, q > 0 0.1 0.933 > x=0.096 2) Построим график системы функций: > plot({-1+sqrt(x+1), -sqrt(-x*x+2*x)+1}, x=-1..1); > fsolve({y=-1+sqrt(x+1), y=-sqrt(-x*x+2*x)+1}); Возьмем в качестве х0 решение х0 = (1, 96; 0, 72). Вычислим производные функций: > diff(x2-sqrt(x1+1)=-1, x1); > diff(x1*x1-2*x1+x2*x2-2*x2+1, x1); Вычислим частные производные в точке х0: > subs({x1 = 1.960148043}, -1/2*1/(sqrt(x1+1))); > subs({x1 =.7205080771}, -1/2*1/(sqrt(x1+1))); > subs({x1 = 1.960148043}, 2*x1-2); > subs({x1 =.7205080771}, 2*x1-2); Для определения коэффициентов аij будем решать систему: 1-0, 29а11+1, 92а12 = 0, -0, 38а11-0, 56 = 0, -0, 29а21+1, 92а22 = 0, 1-0, 38а21-0, 56 = 0. > fsolve({1-0.29*а11+1.92*а12 = 0, 0.38*а11-0.56 = 0, -0.29*а21+1.92*а22 = 0, 1-0.38*а21-0.56 = 0}); Найдем а11 = 1.47, а12 = -0.29, а21 = 1.16, а22 = 0.17 Приведенная система имеет следующий вид: х1 = х1+1, 47f1-0.29f2, x2 = x2+1.16f1+0.17f2. Решим эту систему уравнений: х1 = 1, 9; х2 = 0, 72. 3) Построим график системы функций: > implicitplot({x*x+y*y-2*y, y-exp(-x)}, x=-5..1, y=1..5); Преобразуем исходную систему к следующему виду: x2 = 1+sqrt(1-x*x), x2 = 1/exp(x), x2 = 1-sqrt(1-x*x), x2 = 1+sqrt(1-x*x). > fsolve({x*x+y*y-2*y, y-exp(-x)}); Возьмем в качестве х0 графическое решение х0 = (0, 83; 0, 44). Вычислим частные производные функций: > diff(x*x+y*y-2*y, x); > diff(y-exp(-x), x); Вычислим частные производные в точке х0: > subs({x =.8267700552}, 2*x); > subs({x =.4374599785}, 2*x); > subs({x =.8267700552}, exp(-x)); > subs({x =.4374599785}, exp(-x)); Для определения коэффициентов аij будем решать систему: 1+1.65*а11+e(-0.83)*а12 = 0, 0.87*а11+e(-0.44) = 0, 1.65*а21+e(-0.83)*а22 = 0, 1+0.87*а21+e(-0.44) = 0. > fsolve({1+1.65*а11+0.44*а12 = 0, 0.87*а11+0.66 = 0, 1.65*а21+0.44*а22 = 0, 1+0.87*а21+0.66 = 0}); Найдем а11 = -0.76, а12 = 0.57, а21 = -1.9, а22 = 7.15 Приведенная система имеет следующий вид: х1 = х1-0.76*f1+0.57*f2, x2 = x2-1.9*f1+7.15*f2. Решим эту систему уравнений: х1 = 0.83; х2 = 0.43.
|