Написать программу вычисления значения функции у=1/х.Для х от -1 до +2 с шагом в 0.2

Написать программу вычисления значения функции у=1/х.Для х от -1 до +2 с шагом в 0.2
Гость
Ответ(ы) на вопрос:
Гость
1. Вариант с последовательным приращением аргумента var   x:real; begin   x:=-1;   while x<=2 do begin     Writeln('x=',x:4:1,'   y=',1/x:0:10);     x:=x+0.2     end end. Решение x=-1.0   y=-1.0000000000 x=-0.8   y=-1.2500000000 x=-0.6   y=-1.6666666667 x=-0.4   y=-2.5000000000 x=-0.2   y=-5.0000000000 x= 0.0   y=-18014398509482000.0000000000 x= 0.2   y=5.0000000000 x= 0.4   y=2.5000000000 x= 0.6   y=1.6666666667 x= 0.8   y=1.2500000000 x= 1.0   y=1.0000000000 x= 1.2   y=0.8333333333 x= 1.4   y=0.7142857143 x= 1.6   y=0.6250000000 x= 1.8   y=0.5555555556 x= 2.0   y=0.5000000000 2. Вариант с вычислением аргумента путем умножения var   x:real;   i:integer; begin   for i:=1 to 16 do begin     x:=0.2*(i-1)-1;     Writeln('x=',x:4:1,'   y=',1/x:0:10)     end end. Решение x=-1.0   y=-1.0000000000 x=-0.8   y=-1.2500000000 x=-0.6   y=-1.6666666667 x=-0.4   y=-2.5000000000 x=-0.2   y=-5.0000000000 x= 0.0   y=Infinity x= 0.2   y=5.0000000000 x= 0.4   y=2.5000000000 x= 0.6   y=1.6666666667 x= 0.8   y=1.2500000000 x= 1.0   y=1.0000000000 x= 1.2   y=0.8333333333 x= 1.4   y=0.7142857143 x= 1.6   y=0.6250000000 x= 1.8   y=0.5555555556 x= 2.0   y=0.5000000000 Анализ решений При х=0 функция 1/х терпит разрыв. При подходе к нулю слева она стремится к минус бесконечности, а справа - к плюс бесконечности. Первый вариант программы из-за суммирования на каждом шаге ошибок машинного округления пришел не к нулевому аргументу х, что привело к неточному вычислению значения функции (как видно по результату, аргумент не дошел до нуля слева). Во втором варианте аргумент вычислялся более точно, накопления суммы не было и при нуле мы получили именно "бесконечность". Выводы Табуляция функций по второму варианту предпочтительнее. Но её недостатком является необходимость предварительного вычисления количества повторений цикла по известной формуле Int((b-a)/h)+1 и подготовка формулы для расчета текущего значения переменной в виде функции от параметра цикла.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы