- •Требования к выполнению лабораторних работ
- •Постановка задачи
- •Содержание отчета
- •Теоретические сведения
- •Примеры выполнения заданий
- •Расчет в пакете mathcad
- •Постановка задачи
- •Содержание отчета
- •Постановка задачи.
- •Теоретические сведения
- •Примеры выполнения заданий
- •Уточнение корня комбинированным методом.
- •Пример вычислений по методу хорд в пакете mathcad.
- •Пример реализации модифицированного метода
- •Варианты лабораторных работ
- •Лабораторная работа № 3 решение алгебраических и трансцендентных уравнений методом простой итерации
- •Постановка задачи
- •Содержание отчета
- •Постановка задачи.
- •Теоретические сведения
- •Примеры выполнения заданий
- •Пример решения трансцендентного уравнения в пакете mathcad.
- •Пример расчета в пакете matlab.
- •Варианты заданий (трансцендентное уравнение)
- •Встроенные функции пакетов mathcad, matlab для приближенного решения уравнений Пакет mathcad
- •Пакет matlab
- •Постановка задачи
- •Содержание отчета
- •Теоретические сведения.
- •Теоретические сведения
- •Примеры выполнения заданий
- •Пример вычислений в пакете mathcad.
- •Программная реализация метода Гаусса для решения слау в пакете matlab.
- •Варианты лабораторных работ
- •Лабораторная работа № 5 итерационные методы решения системы линейных алгебраических уравнений (слау)
- •Постановка задачи
- •Содержание отчета
- •Постановка задачи.
- •Теоретические сведения.
- •Теоретические сведения
- •Пример выполнения заданий
- •Решение системы методом простой итерации.
- •Пример расчета в пакете mathcad.
- •Программная реализация метода простой итерации для решения слау в пакете matlab.
- •Встроенные функции пакетов mathcad и matlab
- •Для приближенного решения систем линейных
- •Алгебраических уравнений
- •Пакет mathcad
- •Пакет matlab
- •Тема 3. Интерполяция и приближение полиномами Лабораторная работа № 6 интерполяционный многочлен лагранжа
- •Постановка задачи
- •Теоретические сведения.
- •Теоретические сведения
- •Пример выполнения заданий
- •Построение полинома Лагранжа для таблично заданной функции.
- •Построение полинома Лагранжа в пакете mathcad.
- •Пример построения полинома Лагранжа в пакете matlab.
- •Пример использования узлов Чебышева.
- •Пример вычисления погрешности интерполирования.
- •Варианты лабораторных работ
- •Варианты лабораторных работ (продолжение)
- •Варианты лабораторных работ (окончание)
- •Лабораторная работа № 7 интерполирование для таблиц с постоянным шагом. Численное дифференцирование. Обратное интерполирование
- •Постановка задачи
- •Содержание отчета
- •Постановка задачи.
- •Теоретические сведения.
- •Теоретические сведения
- •Пример выполнения заданий
- •Построение первой формулы Ньютона в пакете mathcad.
- •Пример программ для вычислений по первой формуле Ньютона в matlab.
- •Обратное интерполирование с помощью полинома Ньютона в пакете mathcad.
- •Решение задачи обратного интерполирования
- •Варианты заданий
- •Лабораторная работа № 8 интерполирование кубическими сплайнами
- •Постановка задачи
- •Содержание отчета
- •Постановка задачи
- •Теоретические сведения.
- •Теоретические сведения
- •Пример выполнения заданий
- •Построение кубического сплайна в пакете matlab.
- •Построение кубического сплайна в пакете mathcad.
- •Варианты лабораторных работ
- •Варианты лабораторных работ (окончание)
- •Встроенные функции интерполирования Пакет mathcad
- •Пакет matlab
- •Библиографический список
- •Содержание
- •Тема 1. Приближенное решение алгебраических
- •Тема 2. Приближенное решение систем линейных
- •Тема 3. Интерполяция и приближение полиномами……50
Пример выполнения заданий
-
Построение первой формулы Ньютона в пакете mathcad.
Пример функции для построения матрицы конечных разностей:
Первая формула Ньютона может иметь вид
Формулу Гаусса можно реализовать следующим образом:
где x, y – табличные значения; X – точка интерполяции; n – количество узловых точек.
-
Пример программ для вычислений по первой формуле Ньютона в matlab.
X,Y – табличные значения; x – точка интерполяции; n – количество узловых точек.
function res = Nuton1(x,X,Y,n)
res=Y(1);
% определение шага таблицы
H=X(2)-X(1);
for i=1:n
% построение матрицы конечных разностей
konrazn=diff(Y,i);
konrazn=konrazn(1);
% вычисление факториала
fact=prod(1:i);
% вычисление (x-x0)(x-x1)...(x-xn-1)
Mult=1;
for j=1:i
Mult=Mult*(x-X(j));
end;
res=res+(konrazn/(fact * H^i))*Mult;
end;
res
return
Функция EvalNuton.m вычисляет значения указанного полинома в заданном множестве точек:
function yy = EvalNuton(X,Y,xx,formNumber)
n=length(X)-1;
if (formNumber==1)
for i=1:length(xx);
yy(i)=Nuton1(xx(i),X,Y,n);
end;
else
for i=1:length(xx);
yy(i)=Nuton2(xx(i),X,Y,n+1);
end;
end;
return
Пример вызова функций и построения графика:
>> x = [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
>> y = [0.99602 1.07670 1.15402 1.22777 1.29776 1.36386 1.42592 1.48384 1.53751 1.58688]
>> EvalNuton(x,y,0.04,1)
res =
1.0287
>> EvalNuton(x,y,0.89,2)
res =
1.5821
>> xx=linspace(0,1,1000)
>> yy=EvalNuton(x,y,xx,1)
>> figure('Color','w')
>> hold on
>> plot(xx,yy,'r')
>> plot(x,y,'bo')
-
Обратное интерполирование с помощью полинома Ньютона в пакете mathcad.
Используется первая формула Ньютона, которая записана с помощью функции пользователя. Для реализации метода итераций организован программный блок, выходными параметрами которого являются искомое значение аргумента и необходимое количество итераций:
-
Решение задачи обратного интерполирования
с помощью полинома Ньютона в пакете MATLAB.
Res – функция для решения по методу итераций. Эта функция вызывает функцию Q(q,y,Y,n), которая определяет первую интерполяционную формулу Ньютона для метода обратной интерполяции:
function res=iter(y,Y,X,eps)
h = X(2)-X(1);
n = length(X);
konrazn=diff(Y,1);
konrazn=konrazn(1);
q = (y - Y(1))/konrazn;
q_next = Q(q,y,Y,n);
while abs(q_next-q)>eps
q=q_next;
q_next = Q(q,y,Y,n);
end;
res = q_next*h+X(1);
return
% функция Q(q,y,Y,n):
function res=Q(q,y,Y,n)
sum = 0;
for i=2:n-1
% вычисление конечной разности
konrazn=diff(Y,i);
konrazn=konrazn(1);
% вычисление факториала
fact=prod(1:i);
% вычисляем (x-y0)(x-y1)...(x-yn-1)
Mult=1;
for j=1:i
Mult=Mult*(q-j+1);
end;
sum=sum+(konrazn/(fact))*Mult;
end;
konrazn=diff(Y,1);
konrazn=konrazn(1);
res = (y-Y(1)-sum)/konrazn;
return
Пример вызова функций:
> > x = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
>> y= [0.99602 1.07670 1.15402 1.22777 1.29776 1.36386 1.42592 1.48384 1.53751 1.58688]
>> iter(1.36386,y,x,0.001)
ans =
0.5000
>> iter(1.30254,y,x,0.001)
ans =
0.4070