close

Вход

Забыли?

вход по аккаунту

?

Отчет (4)

код для вставкиСкачать
 Федеральное агентство связи
Сибирский Государственный Университет Телекоммуникаций и Информатики
Межрегиональный центр переподготовки специалистов
Лабораторная работа №1
По дисциплине: Вычислительная математика
Выполнил: Группа: Вариант: 3
Проверил: ___________________
Новосибирск, 2013 г
Задание к работе:
Лабораторная работа №1. Интерполяция. Известно, что функция удовлетворяет условию при любом x. Рассчитать шаг таблицы значений функции f(x), по которой с помощью линейной интерполяции можно было бы найти промежуточные значения функции с точностью 0.0001, если табличные значения функции округлены до 4-х знаков после запятой. Составить программу, которая 1.Выводит таблицу значений функции с рассчитанным шагом h на интервале [c, c+30h].
2. С помощью линейной интерполяции вычисляет значения функции в точках по таблице значений функции с шагом h.
3. Выводит значения xi, приближенные и точные значения функции в точках xi (i = 0,1,...,29).
Для построения таблицы взять функцию N - последняя цифра пароля, i mod 4 - остаток от деления i на 4 (Например, 10 mod 4 = 2, 15 mod 4 = 3, 8 mod 4 = 0).
Выполнение работы:
N = 3, значит c = 4
Полная погрешность интерполяции R = Rусеч + Rокруг, где Rусеч - погрешность формулы линейной интерполяции, Rокруг - погрешность, возникающая из-за подстановки в формулу линейной интерполяции приближенных значений функции.
Известно, что погрешность формулы линейной интерполяции оценивается по следующему неравенству:
Rусеч  , где По условию задачи , следовательно, Rусеч = = = h2
По условию табличные значения функции округлены до 4-х знаков. Следовательно, абсолютная погрешность округления табличных значений D (f) = 0.5 10-5. Тогда, при подстановке этих приближенных значений в формулу линейной интерполяции возникает погрешность:
Rокруг = (1 - q) D (f) + q D (f) = D (f) = 0.5 10-5. По условию, общая погрешность R  0.0001. Получаем,
h2 + 0.5 10-5 
h2 - 0.5 10-5 h2 
h 
h = 0.009
Результаты работы программы:
Текст программы:
program lab1; uses
Crt;
const
n = 3;
c = n + 1;
{ Вычисляет значение функции в точке x }
function F(x: Real): Real;
begin
F := 2 * c * c * c * Sin(x / c);
end;
{ Округляет число r до 4-х знаков после запятой }
function RoundTo4(r: Real): Real;
const
k = 10000;
begin
RoundTo4 := Round(r * k) / k;
end;
const
h = 0.009; { Шаг }
max = 30;
var
mx: array[0..max] of Real; { Массив для значений x c шагом h }
my: array[0..max] of Real; { Массив для табличных значений функции }
x, y: Real;
i: Integer;
q: Real;
begin
ClrScr;
x := c;
for i := 0 to max do begin { Составляем таблицу значений функции }
y := RoundTo4(F(x));
mx[i] := x;
my[i] := y;
x := x + h;
end;
for i := 0 to max - 1 do begin
x := c + i * h + (i mod 4 + 1) / 5 * h;
q := (x - mx[i]) / h; { Вычисляем значения функции с пом. линейной интерполяции }
y := my[i] + q * (my[i + 1] - my[i]);
Writeln('x = ', mx[i]:5:3, ', y = ', my[i]:6:4, '; ',
'x = ', x:6:4, ', y(прибл) = ', y:7:5, ', y(точн) = ', F(x):7:5);
if i = 23 then begin
Write('Для продолжения нажмите Enter');
Readln;
end;
end;
Writeln('x = ', mx[max]:5:3, ', y = ', my[max]:6:4);
Readln;
end.
Документ
Категория
Рефераты
Просмотров
193
Размер файла
108 Кб
Теги
отчет
1/--страниц
Пожаловаться на содержимое документа