|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Отчет по лабораторной работе №4«Аппроксимация и интерполяция функции»
Выполнил студент гр. 23424/1: Будылина Е.В. (подпись)
Проверил: Бондаренко В.Б. (подпись)
Санкт-Петербург 2013г. 1.Задание:
2. Тексты программ: 1. f:=Function [x, Series [f[x],{x,0,4}] p:=0.2 data=Table[{N[i/5], (1+p*(1-2*Random[]))*f[i/5]},{i,1,5}] Expand [InterpolatingPolynomial[data,x]] Fit[data,{1,x,x^2},x] 2. g00:= ListPlot[data,PlotStyle->PointSize[0.017]] g0:= Plot[f[x],{x,-1,1}] f1:= Function[x, ] g1:= Plot[f1[x], {x,-1,1}, PlotStyle -> Dashing[{0.03,0.03}]] f2:= Function[x, -0.9882684212102102 + 20.228321626919264*x -64.33031732992899* +78.30725321233713* - 32.457044088406995* ] g2:= Plot[f2[x], {x,-1,1}, PlotStyle -> Dashing[{0.01,0.01}]] f3:= Function[x, 1.31031315676220308 – 1.3024921821372268*x + 0.765986970866362* ] g3:= Plot[f3[x], {x,-1,1}, PlotStyle -> GrayLevel[0.6]] Show[g00, g0, g1, g2, g3] 3. h0:= Plot[f’[x], {x,-1,1}] h1:= Plot[f1’[x], {x,-1,1}, PlotStyle -> Dashing[{0.03,0.03}]] h2:= Plot[f2’[x], {x,-1,1}, PlotStyle -> Dashing[{0.01,0.01}]] h3:= Plot[f3’[x], {x,-1,1}, PlotStyle -> GrayLevel[0.6]] Show[h0, h1, h2, h3] 4. Результаты тестирования: 1. Out [1]= Out [2]= {{0.2, 1.05871}, {0.4, 0.990973}, {0.6, 0.697744}, {0.8, 0.821894}, {1., 0.759945}} Out [3]= -0.988268 + 20.2283*x -64.3303* +78.3073* - 32.457* Out [4]= 1.31031 – 1.30249*x + 0.76599* 2.
Out [5]= - Graphics - 3.
Out [6]= - Graphics - 4. Вывод: В данной работе мы рассмотрели аппроксимацию и интерполяцию функций в системе Mathematica 5. Как известно, самая простая аппроксимация – разложение данной нам функции в ряд Тейлора в форме Лагранжа. Для этого мы использовали встроенную функцию Series, у которой следующий синтаксис: в квадратных скобках первой указывается сама функция, далее в фигурных скобках (сложный аргумент): относительно какой переменной будет представление в виде ряда, второе число – точка, в окрестности которой будем наблюдать разложение, и третье – максимальная степень. В результатах тестирования 1 пункта нашей программы был получен ряд Тейлора для нашей функции в окрестности точки 0. Стоит отметить, что на графике, представленном в блоке тестирования пункта 2, видно как идентичны функция и ее ряд Тейлора, однако при отдалении от точки, в окрестностях которой функция была представлена в виде ряда Тейлора, графики начинают различаться – значит, аппроксимация такого вида хороша в окрестности точки, однако при отдалении ее идентичность спадает. В пункте 2 мы симулируем физический эксперимент, для этого вводим «шум», причем для получения полином 4-ой степени необходимо 5 точек, которые мы формируем в виде массива данных, аргументом у нас является data. Далее у нас отражено использование встроенного оператора InterpolatingPolynomial, который строит интерполяционный полином. Он отличается от простой аппроксимации тем, что это – функция, график которой проходит через все экспериментальные точки – в нашем эксперименте отлично отражены способности этого оператора. В пункте 3 мы использовали процедуру регрессивного анализа данных Fit – ее синтаксис следующий: в первую очередь указывается массив данных, далее в фигурных скобках через запятую указывается по каким функциональным зависимостям необходимо построить аппроксимацию, потом указывает функция, относительно которой необходимо получить полином. В дальнейшем все графики полученных аппроксимаций представлены в результатах тестирования, в этой работе мы вводим новое понятие – графическая переменная – при ее объявлении мы указываем функцию, интервал построения и характер линии, задаваемый служебной процедурой PlotStyle – таким образом используя Dashing мы получили штриховые линии, различающиеся величиной штрихов, а используя GrayLevel мы получили серую линию для параболической аппроксимации. Чтобы более качественно визуально оценить аппроксимацию точек из массива, мы выводим их на экран с помощью процедуры ListPlot (аргументом является массив data) и размер точек в данном случае необходимо указывать средний. Для вывода всех графиков в одних координатных осях мы использовали процедуру Show и указали через запятую все графические переменные. Для вывода на экран мы воспользовались той же процедурой, однако стоит отметить факт, что для обозначения производной необходимо лишь поставить апостроф перед аргументом функции. Полученные графики производных указывают на следующее – производные самой функции и ее ряда Тейлора в окрестностях точки разложения также совпадают, однако опять-таки при отдалении от этой точки имеются очевидные расхождения.. Полученные аппроксимации при работе с массивом точек с уровнем «шума» 40% отличаются от заданной функции – по причине усреднения между неравномерно «разбросанных шумом» точками и получением функции, отличающейся от заданной – это обусловлено случайной выборкой точек с использованием функции Random. Также за пределами промежутка интерполяции параболическая аппроксимация разительно отличается от заданной функции – в силу того, что вид определяется исключительно точками в заданной интервале В итоге справедливо заметить, что для проведения эксперимента необходимо минимизировать уровень «шумов» для дальнейшей обработки в вычислительных системах для получения результата, максимально приближенного к ожидаемому/теоретическому. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |