Автор работы: Пользователь скрыл имя, 09 Ноября 2013 в 21:17, контрольная работа
Задание Вычислить с заданной точностью ee площадь фигуры между дугами двух кривых y1 и y2 заданным численным методом интегрирования "Метод 1". Для нахождения пределов интегрирования a и b найти корни уравнения y1 - y2 = 0 заданным численным методом решения нелинейных уравнений "Метод2".
Задание 3
График заданной функции (функций) в Excel 3
Описание заданного численного метода (методов) 4
Схема программ и подпрограмм (блок-схемы алгоритмов) 6
Листинг программы 8
Полученные результаты работы программы в виде скриншота 10
Выводы 10
Литература 11
Титульный лист
Содержание
Задание 3
График заданной функции (функций) в Excel 3
Описание заданного численного метода (методов) 4
Схема программ и подпрограмм (блок-схемы алгоритмов) 6
Листинг программы 8
Полученные результаты работы программы в виде скриншота 10
Выводы 10
Литература 11
Вычислить с заданной точностью ee площадь фигуры между дугами двух кривых y1 и y2 заданным численным методом интегрирования "Метод 1". Для нахождения пределов интегрирования a и b найти корни уравнения y1 - y2 = 0 заданным численным методом решения нелинейных уравнений "Метод2".
№ |
y1(х) |
Y2(х) |
Метод1 |
Метод2 |
28 |
y1 = 2х |
y2 = Cos(x2)+1 |
Трапеций |
Хорд |
Метод трапеций
Для приближенного вычисления интеграла от функции на отрезке разобьём отрезок [a;b] на n равных частей и заменим график f(x) ломаной, состоящей из n звеньев.
Тогда искомую площадь можно
приближенно вычислить как
S≈ S1+S2+S3+…+ Sn,
где площадь одной трапеции, например S7,можно вычислить, умножив полусумму оснований f(x7) и f(x8) на высоту h=(b-a)/n:
S7= (f(x7) +f(x8)/2 *h.
C увеличением n «зазор» между ломаной и графиком функции уменьшается, и вычисленная с помощью алгоритма площадь становится всё ближе к значению интеграла функции на отрезке.
Уточнение корней методом хорд
Метод основан на замене функции f (x) на каждом шаге поиска хордой, пересечение которой с осью Х дает приближение корня.
При этом в процессе поиска семейство хорд может строиться:
а) при фиксированном левом конце хорд, т.е. z=a, тогда начальная точка х0=b (рис.7а) ;
б) при фиксированном правом конце хорд, т.е. z=b, тогда начальная точка х0=a (рис.7б) ;
Рис.1. (а, б) Графический способ отделения корней методом хорд
В результате итерационный процесс схождения к корню реализуется рекуррентной формулой:
для случая а)
для случая б)
Процесс поиска продолжается до тех пор, пока не выполнится условие
Метод обеспечивает быструю сходимость, если f (z) f" (z) > 0, т.е. хорды фиксируются в том конце интервала [a,b], где знаки функции f (z) и ее кривизны f" (z) совпадают.
Рис.2. Схема алгоритма уточнения корня методом хорд
|
|
program Projectmy;
var
x,a,b,eps: real;
n, i: integer;
m: text;
function f (x: real): real;
begin
f:=cos(x*x)+1-exp(x*ln(2)); end;
function fi (x: real): real;
begin
fi:=ln(cos(x*x)+1)/ln(2);
end;
function df (x: real): real;
begin
df:=-2*x*sin(x*x)-ln(2)*exp(x*
end;
function d2f (x: real): real;
begin
d2f:=-2*sin(x*x)-4*x*x*cos(x*
end;
Procedure xord (a,b,eps: real; var x: real; var k: integer);
var
xk,fx,fk,h: real;
begin
k:=0;
if f (a) *d2f (a) >0
then begin xk:=a; x:=b end
else begin xk:=b; x:=a end;
fk:=f (xk);
repeat
k:=k+1;
fx:=f (x);
h:=fx* (x-xk) / (fx-fk);
x:=x-h;
until abs (h) <eps;
end;
procedure menu (var i: integer);
begin
writeln ('sozdanije fajla');
Assign (m,'D:\Rez.txt');
Rewrite (m);
writeln ('1 - Vvedite eps');
writeln ('2 - Metod xord');
writeln ('3 - exit');
repeat
writeln (' ENTER: ');
readln (i);
until (i>0) and (i<4);
end;
begin
a:=0;
b:=1;
while true do
begin
menu (i);
case i of
1: begin
writeln ('vvedute eps');
readln (eps);
end;
2: begin
xord (a,b,eps,x,n);
writeln ('x0=',x: 10: 8,' f (x0) =',f (x): 10: 8,' n=',n);
end;
3: begin
exit;
close (m);
writeln ('Dannye sapisany v file', 'D:\Rez.txt');
end;
end;
end;
readln;
end.
Метод хорд — итерационный численный
метод приближённого нахождения
корня алгебраического
Program MethodHorda;
Uses Crt;
Var
a,b,t,x,eps: Real;
Function func(x: Real): Real;
Begin
{ function }
func:=cos(x*x)+1-exp(x*ln(2));
End;
Begin
ClrScr;
{ Vvod isxodnyx danyx}
Write('vvedite levuju granizu otrezka: ');
ReadLn(a);
Write('vvedite pravuju granizu otrezka: ');
ReadLn(b);
Write('vvedite pribligenije: ');
ReadLn(eps);
{ vythislyaem v thikle, poka ne budet dostignuto pribligenije }
Repeat
x:=a-func(a)*(b-a)/(func(b)-
If func(a)*func(x)<=0 Then b:=x
Else a:=x;
Until abs(func(x))<=eps;
Writeln(' Korenj uravnenija x = ', x:10:8);
Repeat Until KeyPressed
End.
Корень уравнения х=0,82748156
1 Полученное значение корня
найдено с достаточной
0,00000334 < Е = 0.00001
2 При реализации программы
Согласно пункту задания программа выводит результаты работы на гибкий диск (в программе это диск d:) в файл Rez.txt.
ФИО