ФЭА / АИТ / Лабораторная работа №2 Вариант №4 Задание: 2*x+ln(x)+0,5=0;
(автор - student, добавлено - 25-01-2014, 17:08)
СКАЧАТЬ ПРОГРАММА В АРХИВЕ:
Лабораторная работа №2 Вариант №4
Задание: 2*x+ln(x)+0,5=0; 1) Отделяем корень уравнения: Исходный код программы: Program ocenit; Uses CRT; Var n:integer; a,b,y,x,h,c,z:real; Function f(t:real):real; begin f:=2*t+ln(t)+0.5; end; BEGIN CLRSCR; Write ('(a,b):'); Readln (a,b); Write ('n='); Readln (n); h:=(b-a)/n; x:=a; Repeat c:=f(x); y:=x+h; z:=f(y); if z*c<0 then Writeln ('[',x:1:1,';',y:1:1,']'); x:=x+h; Until y>=b; Readln; END. Программа выдала, что корень лежит в промежутке [0.2;0.4];
2) Если. Таким образом .
3) Графическая интерпретация метода выглядит следующим образом:
4) Исходный код программы: Program iteracii; Uses CRT; Var a,b,x,e,y:real; i:boolean; k:integer;
Function fun(x:real):real; begin fun:=2*x+ln(x)+0.5; end; Function f(x:real):real; begin f:=exp(-2*x-0.5); end;
Function f_1(x:real):real; begin f_1:=exp(-2*x-0.5)*(-2); end;
BEGIN CLRSCR; i:=false; k:=0; Write ('(a;b): '); Readln(a,b); Write ('e='); Readln (e); if (abs(f_1(a))<abs(f_1(b))) Then x:=a else x:=b; Writeln (' k X E'); Repeat inc(k); y:=f(x); Write (' ',k,' '); Write (' ',y:1:4,' '); Writeln (' ',abs(y-x):1:5,' '); if abs(y-x)<=e then i:=true else x:=y; Until i=true; Writeln; Write ('y=',y:1:4,'f(y)=',fun(y):1:4); Readln; END.
Таблица результатов:
При проверке корня на отрезке [0.2;0.4] с точностью Е=0.0001 получили: , а значение функции в этой точке: f(x)=-0.0002…
Самым точным корнем оказался: x=0.3199 Похожие статьи:
|
|