Лабораторная работа: Применение численных методов для решения уравнений с частными производными
![](/file/7d5aacc146456be8f3642.jpg)
👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
«Применение численных методов для решения Уравнений с частными производными»
Лабораторная работа N1 "Интерполирование алгебраическими многочленами"
Для решения задачи локального интерполирования алгебраическими многочленами в системе MATLAB предназначены функции polyfit (POLYnomial FITting - аппроксимация многочленом) и polyval (POLYnomial VALue - значение многочлена).
Функция polyfit (X,Y,n) находит коэффициенты многочлена степени n , построенного по данным вектора Х, который аппроксимирует данные вектора Y в смысле наименьшего квадрата отклонения. Если число элементов векторов X и Y равно n+1, то функция polyfit (X,Y,n) решает задачу интерполирования многочленом степени n.
Функция polyval (P,z) вычисляет значения полинома, коэффициенты которого являются элементами вектора P, от аргумента z . Если z – вектор или матрица, то полином вычисляется во всех точках z.
Воспользуемся указанными функциями системы MATLAB для решения задачи локального интерполирования алгебраическими многочленами функции, заданной таблицей своих значений
и вычисления ее приближенного значения в точке x* = 2.2 .
Задача 1 (задача локального интерполирования многочленами)
Построить интерполяционные многочлены 1-ой, 2-ой и 3-ей степени.
Записать многочлены в канонической форме и построить их графики.
Решение задачи средствами системы MATLAB:
X=[0.0000 0.5000 1.0000 1.5000 2.0000 2.5000];
Y=[0.0378 0.0653 0.3789 1.0353 0.5172 0.9765];
P1=polyfit(X(4:5),Y(4:5),1) Коэффициенты многочлена P1
P2=polyfit(X(3:5),Y(3:5),2) Коэффициенты многочлена P2
P3=polyfit(X(3:6),Y(3:6),3) Коэффициенты многочлена P3
Полученные таким образом коэффициенты интерполяционных многочленов и значения этих многочленов при x=x* :
P3 = 2.8692 -15.2604 25.8351 -13.0650
P 2
= -2.3490
*X 2
+ 7.1853
*X+ -4.4574
P 3
= 2.8692
*X 3
-15.2604
*X 2
+ 25.8351
+ -13.0650
Для построения графиков интерполяционных многочленов следует создать векторы xi1, xi2, xi3, моделирующие интервалы (X(3):X(4)), (X(2):X(4)),(X(2):X(5)), соответственно, и вычислить значения многочленов P1, P2, P3 для элементов векторов xi1, xi2, xi3, соответственно:
plot(X,Y,'*k',xi1,y1,xi2,y2,xi3,y3);grid
Интерполирование нелинейной функцией Y=A*exp(-B*X)
Функция plot с указанными аргументами строит табличные значения функции черными звездочками('*k'), а также графики многочленов P1 (по векторам xi1 и y1), P2 (по векторам xi2 и y2) и P3 (по векторам xi3 и y3), и функцией Y=A*exp(-B*X), соответственно синей, красной и зеленой кривыми.
plot(X,Y,'*k',xi1,y1,xi2,y2,xi3,y3,xi1,exp(Pu(2))*exp(Pu(1)*xi1));grid
Оценка погрешности интерполирования
При оценке погрешности решения задачи интерполирования в точке x* за погрешность epsk интерполяционного многочлена степени k принимается модуль разности значений этого многочлена и многочлена степени k+1 в точке x*.
С помощью уже полученных значений мы можем оценить погрешности интерполяционных многочленов P1 и P2 в точке x* , используя функцию abs
системы MATLAB для вычисления модуля:
Для оценки погрешности многочлена P3 необходимо предварительно вычислить
значение z4=P4(x*), а затем - eps3.
P4=polyfit(X,Y,4);z4=polyval(P4,xzv);
X=[0.0000 0.5000 1.0000 1.5000 2.0000 2.5000];
Y=[0.0378 0.0653 0.3789 1.0353 0.5172 0.9765];
plot(X,Y,'*m',xx,ppval(cs,xx),'-k');
B=[6*(Y(2)-Y(1))/h 0 0 0 0 6*(Y(length(Y))-Y(length(Y)-1))/h]
B1=[2*(2*Y(2)-Y(1)-Y(3))/h 0 0 0 0 2*(2*Y(length(Y)-1)-Y(length(Y))-Y(length(Y)-2))/h]
plot(X,Y,'ob',xx,ppval(cs,xx),'-',x1,ppval(c1,x1),'*',x2,ppval(c2,x2),'^',xx,spline(X,Y,xx));
B =
0.3300 2.0466 5.8200 0 0 5.5116
B =
0.3300 2.0466 5.8200 0.8298 0 5.5116
B =
0.3300 2.0466 5.8200 0.8298 -0.3528 5.5116
B1 = -1.1444 2.0466 5.8200 0 0 -3.9096
B1 = -1.1444 2.0466 5.8200 0.8298 0 -3.9096
B1 = -1.1444 2.0466 5.8200 0.8298 -0.3528 -3.9096
Лабораторная работа N2 "Построение алгебраических многочленов наилучшего среднеквадратичного приближения"
X=[0.0000 0.5000 1.0000 1.5000 2.0000 2.5000];
Y=[0.0378 0.0653 0.3789 1.0353 0.5172 0.9765];
0.5000 0.0653 0.2500 0.0326 0.0163 0.1250 0.0625
1.0000 0.3789 1.0000 0.3789 0.3789 1.0000 1.0000
1.5000 1.0353 2.2500 1.5530 2.3294 3.3750 5.0625
2.0000 0.5172 4.0000 1.0344 2.0688 8.0000 16.0000
2.5000 0.9765 6.2500 2.4413 6.1031 15.6250 39.0625
7.5000 3.0110 13.7500 5.4402 10.8966 28.1250 61.1875 - Сумма
По данным таблицы запишем и решим нормальную систему МНК-метода:
S1=[n, TABL(7,1);TABL(7,1) TABL(7,3)] матрица коэффициентов
T1=[TABL(7,2);TABL(7,4)] вектор правых частей
coef1=S1\T1 решение нормальной системы МНК
A1=coef1(2);B1=coef1(1); коэффициенты многочлена 1-ой степени
S2=[n TABL(7,1) TABL(7,3);TABL(7,1) TABL(7,3) TABL(7,6);TABL(7,3) TABL(7,6) TABL(7,7)] матрица коэффициентов
T2=[TABL(7,2);TABL(7,4);TABL(7,5)] вектор правых частей
coef2=S2\T2 решение нормальной системы МНК
A2=coef2(3);B2=coef2(2);C2=coef2(1); коэффициенты многочлена 2-ой степени
Для построения графиков функций y1=A1*x+B1 и y2=A2*x^2+B2*x+C2 с найденными коэффициентами зададим вспомогательный вектор абсциссы xi, а затем вычислим элементы векторов g1=A1*xi+B1 и g2=A2*xi^2+B2*xi+C2:
coef1=polyfit(X,Y,1) коэффициенты многочлена первой степени
coef2=polyfit(X,Y,2) коэффициенты многочлена второй степени
Для построения графиков зададим вспомогательный вектор абсциссы xi, а затем c помощью функции polyval вычислим элементы векторов g1 и g2:
Очевидно, что построенные таким способом графики совпадут с полученными ранее.
Для того, чтобы определить величину среднеквадратичного уклонения, вычислим суммы квадратов уклонений g1(x) и g2(x) от таблично заданной функции в узлах таблицы X а затем
delt1=sum((Y-G1).^2); delt1=sqrt(delt1/5)
delt2=sum((Y-G2).^2); delt2=sqrt(delt2/5)
Последние две строки можно заменить другими, если использовать функцию mean , вычислющую среднее значение:
X=[0.0000 0.5000 1.0000 1.5000 2.0000 2.5000];
Y=[0.0378 0.0653 0.3789 1.0353 0.5172 0.9765]
TABL=[X,sum(X);Y,sum(Y);... означает перенос строки
По данным таблицы запишем и решим нормальную систему МНК-метода:
S2=[n TABL(7,1) TABL(7,3);TABL(7,1) TABL(7,3) TABL(7,6);TABL(7,3) TABL(7,6) TABL(7,7)] матрица коэффициентов
T2=[TABL(7,2);TABL(7,4);TABL(7,5)] вектор правых частей coef2=S2\T2 решение нормальной системы МНК
A2=coef2(3);B2=coef2(2);C2=coef2(1); коэффициенты многочлена 2-ой степени
Дл построения графиков функции y2=A2*x^2+B2*x+C2 с найденными коэффициентами зададим вспомогательный вектор абсциссы xi, а затем вычислим элементы векторов g1=A1*xi+B1 и g2=A2*xi^2+B2*xi+C2 :
coef2=polyfit(X,Y,2) коэффициенты многочлена второй степени
Для построения графиков зададим вспомогательный вектор абсциссы xi, а затем c помощью функции polyval вычислим элементы векторов g1 и g2:
plot(X,Y_o,'*k',xi,log(1./g2));grid
Очевидно, что построенные таким способом графики совпадут с полученными ранее.
Для того, чтобы определить величину среднеквадратичного уклонения, вычислим суммы квадратов уклонений g1(x) и g2(x) от таблично заданной функции в узлах таблицы X а затем
delt2=sum((Y-G2).^2); delt2=sqrt(delt2/5)
Последние две строки можно заменить другими, если использовать функцию mean , вычисляющую среднее значение:
Y = 0.0378 0.0653 0.3789 1.0353 0.5172 0.9765
Y_o = 0.0378 0.0653 0.3789 1.0353 0.5172 0.9765
Y = 0.9629 0.9368 0.6846 0.3551 0.5962 0.3766
0.5000 0.9368 0.2500 0.4684 0.2342 0.1250 0.0625
1.0000 0.6846 1.0000 0.6846 0.6846 1.0000 1.0000
1.5000 0.3551 2.2500 0.5327 0.7990 3.3750 5.0625
2.0000 0.5962 4.0000 1.1924 2.3848 8.0000 16.0000
2.5000 0.3766 6.2500 0.9416 2.3539 15.6250 39.0625
7.5000 3.9122 13.7500 3.8196 6.4565 28.1250 61.1875
Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений
X=[0.00000 0.10000 0.20000 0.30000 0.40000 0.50000];
Y0=input('Значение функции в точке 0 = ');
X=[0.00000 0.10000 0.20000 0.30000 0.40000 0.50000];
Y0=input('Значение функции в точке 0 = ');
Y_n1=Y_n1*(1+0.1*X(n))/(1-0.1*(X(n)+0.1));
Y_sot=Y_sot*(1+0.01*X1(n))/(1-0.01*(X1(n)+0.01));
Y_tys=Y_tys*(1+0.001*X2(n))/(1-0.001*(X2(n)+0.001));
или Y2=input('Введите значение Yn в точке X=0 =')
y_2(i+1)=y_2(i)/(1-h_2*2*X_2(i+1));
y_3(i+1)=y_3(i)/(1-h_3*2*X_3(i+1));
TABL=[X; Y;... ... означает перенос строки
plot(X,Y,'-',X,y_1,X,[y_2(1),r1],X,[y_3(1),r2])
function [ output_args ] = koshi( input_args )
KOSHI Summary of this function goes here
while (eps >= 0.000001) & (i < 10000)
a_new=a-psi*(a-a_old)/(psi-psi_old)
Генерация матрицы 10*10 из элементов равномерно распределённых 1..10
function [ output_args ] = ravnomern10_10_1_10( input_args )
RAVNOMERN10_10_1_10 Summary of this function goes here
Решение краевой задачи методом сеток для УЧП.
v=v.*((1*9+sum(0:h:1)+sum(0:h:1))/40)
d = max(max(abs(v(2:end-1,2:end-1)-v_new(2:end-1,2:end-1))))
HELM ВЫЧИСЛЯЕТ МЕТОДОМ МОНТЕ-КАРЛО (АЛГОРИТМ "БЛУЖДАНИЙ ПО СЕТКЕ") РЕШЕНИЕ ЗАДАЧИ ДИРИХЛЕ ДЛЯ УРАВНЕНИЯ ГЕЛЬМГОЛЬЦА В ЗАДАННОЙ ТОЧКЕ (x,y) ПРЯМОУГОЛЬНОЙ ОБЛАСТИ D, ОПРЕДЕЛЕННОЙ ГРАНИЦАМИ.
function [z1,z2,z3]=helm(c,fun,xm,ym,gr,x0,y0,h,n);
HELM ВЫЧИСЛЯЕТ МЕТОДОМ МОНТЕ-КАРЛО (АЛГОРИТМ "БЛУЖДАНИЙ ПО СЕТКЕ")
РЕШЕНИЕ ЗАДАЧИ ДИРИХЛЕ ДЛЯ УРАВНЕНИЯ ГЕЛЬМГОЛЬЦА В ЗАДАННОЙ
ТОЧКЕ (x,y) ПРЯМОУГОЛЬНОЙ ОБЛАСТИ D, ОПРЕДЕЛЕННОЙ ГРАНИЦАМИ
c - КОЭФФИЦИЕНТ (функциональный) ЛЕВОЙ ЧАСТИ УЧП;
fun - ФУНКЦИЯ F(x,y) В ПРАВОЙ ЧАСТИ УЧП (ФУНКЦИЯ ПОЛЬЗОВАТЕЛЯ);
xm,ym - ГРАНИЦЫ ПРЯМОУГОЛЬНОЙ ОБЛАСТИ;
gr - ГРАНИЧНЫЕ УСЛОВИЯ (ФУНКЦИЯ ПОЛЬЗОВАТЕЛЯ);
x0,y0 - КООРДИНАТЫ ТОЧКИ, В КОТОРОЙ ИЩЕТСЯ РЕШЕНИЕ;
h - ШАГ СЕТКИ (ЗАДАЕТСЯ ПОЛЬЗОВАТЕЛЕМ);
z1 - ПРИБЛИЖЕННОЕ ЗНАЧЕНИЕ РЕШЕНИЯ;
Обращение: [z1,z2,z3]=helm(c,fun,xm,ym,gr,x0,y0,h,n)
disp(' ============================= ');
disp(' при числе траекторий');disp(n);
disp('значение в точке с координатами ');
z1=mean(z);disp(' ПРИБЛИЖЕННОГО РЕШЕНИЯ - ');disp(z1);
z2=0.6745*std(z)/sqrt(n);disp(' ВЕРОЯТНОЙ ОШИБКИ - ');disp(z2);
z3=z2*3/0.6745;disp(' ВЕРХНЕЙ ГРАНИЦЫ ОШИБКИ - ');disp(z3);
[z1,z2,z3]=helm(c,f,xm,ym,gr,x0,y0,h,n);
значение в точке с координатами x0 y0 0.6000 0.7000
Название: Применение численных методов для решения уравнений с частными производными
Раздел: Рефераты по математике
Тип: лабораторная работа
Добавлен 11:45:52 16 августа 2010 Похожие работы
Просмотров: 101
Комментариев: 15
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно Скачать
Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.
Лабораторная работа: Применение численных методов для решения уравнений с частными производными
Контрольная работа по теме Защита прав предпринимателей в спорах с контролирующими органами
Аттестационная Работа Воспитателей
Сочинение Русский Язык Государственный Язык
Сочинение: Н. М. Карамзин и русский сентиментализм
Реферат по теме Программирование в двоичных кодах
Реферат На Тему Понятие Икт Функции Икт
Сочинение На Тему Смысл Заглавия Гроза
Курсовая Работа На Тему Кредитная Система В Российской Федерации
Самопожертвование Сочинение 15.3
Контрольная работа: Клиент социальной работы типология и классификация
Контрольная работа: Человеческие ресурсы и их роль в управлении. Управление человеческими ресурсами в организации
Мои Любимые Слова Сочинения
Как Правильно Написать Заключение В Дипломной Работе
Курсовая работа: Денежно-кредитная политика и особенности ее реализации в современной экономике Беларуси
Реферат по теме Oзоновые дыры. Разрушение озонового слоя Земли хлорфторуглеводородами
Реферат: American Colonies Essay Research Paper When settlers
Договор Авторского Заказа Курсовая
Реферат: Основы конституционного строя Польши
Учреждения Дополнительного Образования Реферат
Контрольная работа по теме Специальные вопросы электроснабжения промышленных предприятий
Реферат: Анализ основных технико-экономических показателей работы предприятия (на примере РУП "Информационный центр земельно-кадастровых данных и мониторинга земель")
Курсовая работа: Процессуальное положение обвиняемого
Статья: Кирилл Иерусалимский (Восточные Отцы IV века)