Читайте также: |
|
Для функции
при 10 значениях приращения аргумента DX =(0,5; 0,25; 0,125;...)
вычислить:
1) точные значения приращений первообразной ,
а также вычислить
2) по формуле F(X+DX/2)·DX - приближенные значения
а) DP1, упростив вычисления за счет дополнительных переменных,
б) DP2, не используя дополнительных переменных, и
3) |DP-DP1| - абсолютные ошибки вычисленных приближенных значений.
Результаты вычислений и соответствующие значения DX
вывести в виде таблицы с заголовками столбцов и номерами строк.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
X=1.5;
var
DP,DP1,DP2,D,R,K,X1,DX:Extended;
I,N:Integer;
begin
//Вывод заголовка таблицы
WriteLn(' # DX DP DP1 DP2'
,' |DP-DP1|');
//Переменная DX будет представлять текущее приращение аргумента
DX:=0.5;
for I:=1 to 10 do
begin
//Вычисление точного значения DP(X)
DP:=Ln(Sqr(X+DX)-1)/(X+DX-1)-Ln(Sqr(X)-1)/(X-1);
//Вычисление значений дополнительных переменных
X1:=X+DX/2; K:=Sqr(X1); R:=K-1; D:=X1-1;
//Вычисление DP(X) с использованием дополнительных переменных
DP1:=(2 * X1 * D - R * Ln(R)) / R / Sqr(D) * DX;
//Вычисление DP(X)
//без использования дополнительных переменных
DP2:=(2*(X+DX/2)*(X+DX/2-1)
-(Sqr(X+DX/2)-1)*Ln(Sqr(X+DX/2)-1))
/(Sqr(X+DX/2)-1)/Sqr(X+DX/2-1)*DX;
//Вывод в строку таблицы вычисленных значений
WriteLn(i:3,DX:10:5,' ',DP:12:6,' ', DP1:10:6,' ', DP2:9:6
,' ',Abs(DP-DP2):12);
//Изменение значения приращения аргумента
DX:=DX/2;
end;//for i
ReadLn;
end.
Дата добавления: 2015-07-12; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 3.1.1 выполнения задания с использованием цикла while | | | Задания 3.1 для самостоятельной проработки |