Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Краткие теоретические сведения
Задание 1. Приняв шаг 0.05, построить на отрезке [3, 5; 3, 7] интерполяционный полином Ньютона для функции y=ex , заданной таблицей
Построим таблицу конечных разностей
Строим интерполяционный полином Ньютона
Задание 2. Имея таблицу значений функции y=sin(x) в пределах от X=150 до X=400 c шагом 50, найти sin 380, sin 190. Оценить погрешность результата. Построим таблицу конечных разностей
Найдем sin 190, воспользовавшись первой интерполяционной формулой Ньютона: =0, 3255 Рассчитываем относительную погрешность результата sin 190 =0, 3256 δ = Найдем sin 380, воспользовавшись второй интерполяционной формулой Ньютона:
=0, 61569 Рассчитываем относительную погрешность результата sin 380 =0, 61566 δ = Задание 3. Построить эмпирическую формулу для некоторой функции, заданной таблицей
P3(x) =-6+6(x-0)-3(x-0)(x-1)+1(x-0)(x-1)(x-2)=-6+6x-3x2+3x+x3-2x2-x2+2x= =x3-6x2+8x-6 Индивидуальное задание 1.Составить таблицу значений функции, приведённой в табл.2, разбив заданный интервал на 10 отрезков с h=const. Функция tg интервал [0; 2]
h=0, 2 2. Составить таблицу конечных разностей
3. По первой и второй интерполяционным формулам Ньютона определить значение функции в точках 0, 05 0, 1 1, 95 1, 9
P10(0, 05) 0, 25*0, 4796 + …+ = =0+0, 1199+0, 021225+0, 01197+0, 00714+0, 00518+ 0, 00382+ 0, 003116+ 0, 002429+ +0, 002297+ 0, 001103= 0, 178183 P10(0, 1) 0, 5*0, 4796 + …+ = =0+ 0, 239812+ 0, 028295+ 0, 013678+ 0, 007417+ 0, 005025+ 0, 003509+ 0, 002738+ 0, 002056+ 0, 001881+ 0, 000878= 0, 305289 P10(1, 95) 0, 25*2, 0469 0, 9263 0, 5227 0, 3293 0, 2248 - …- = =6, 3341-0, 51173-0, 08684-0, 02859-0, 01238-0, 00634-0, 0036-0, 00223-0, 00144-0, 001040, 001103=5, 6810 P10(1, 9) 0, 5*2, 0469 0, 9263 0, 5227 0, 3293 0, 2248 - …- = =6, 3341 -1, 02346 -0, 11579 -0, 03267 -0, 01286 -0, 00615 -0, 00331 -0, 00196 -0, 00122 -0, 00085+ 0, 000878= 5, 1367 4. Построить эмпирическую формулу для заданной функции. P10(x) +…+ = Программа для расчёта значений функций с помощью интерполяционных формул Ньютона using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication2 { class Program { static void Main(string[] args) { double x0, h, q, x, s, mn; int n; ConsoleKeyInfo cki;
double[][] tabl; Console.Write(" Введите число строк таблицы n="); n = Int32.Parse(Console.ReadLine()); Console.Write(" Введите X0="); x0=Double.Parse(Console.ReadLine()); Console.Write(" Введите шаг h="); h = Double.Parse(Console.ReadLine()); tabl=new double [n][]; for (int i = 0; i < n; i++) { tabl[i] = new double[n + 1]; tabl[i][0] = x0 + i * h; Console.Write(" Введите шаг y[{0}]=", i); tabl[i][1] = Double.Parse(Console.ReadLine()); }
for (int i=2; i< n+1; i++) for (int j = 0; j < n - i + 1; j++) { tabl[j][i] = tabl[j + 1][i - 1] - tabl[j][i - 1]; tabl[j][i]=Math.Round(tabl[j][i], 5); }
for (int i = 0; i < n + 1; i++) { if (i == 0) Console.Write(" x \t"); if (i == 1) Console.Write(" y \t"); if (i > 1) Console.Write(" d{0}y \t", i - 1); } Console.WriteLine(); for (int i = 0; i < n; i++) { for (int j = 0; j < n+1; j++) { Console.Write(" {0} \t", tabl[i][j]);
} Console.WriteLine(); } do { Console.Write(" Введите аргумент для рассчёта x="); x = Double.Parse(Console.ReadLine()); if (x< tabl[1][0]) { q = (x - x0) / h; s=tabl[0][1]; mn=1; for (int i=0; i< n-1; i++) { mn*=(q-i); mn/=(i+1); s+=mn*tabl[0][i+2]; } Console.WriteLine(" y({0})={1}", x, s); } if (x> tabl[n-2][0]) { q = (x -tabl[n-1][0]) / h; s=tabl[n-1][1]; mn=1; for (int i=0; i< n-1; i++) { mn*=(q+i); mn/=(i+1); s+=mn*tabl[n-2-i][i+2]; } Console.WriteLine(" y({0})={1}", x, s);
} cki=Console.ReadKey(); } while (cki.Key! = ConsoleKey.Escape); } } }
Результат выполнения
Выводы: научился находить значения функций в точках не являющихся табличными, используя интерполяционные формулы при это погрешность вычислений была менее 0, 1% что свидетельствует о высокой точности получаемых результатов. Научился составлять аналитический формулы для нахождения значений функции с использованием интерполяционных формул Ньютона.
|