АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пример выполнения задания

Читайте также:
  1. CРЕДА, ДЕНЬ ЗАДАНИЯ
  2. I. Организация выполнения выпускной квалификационной работы
  3. II проверка домашнего задания
  4. II.Примерная тематика курсовых работ
  5. III. Задания для самостоятельного выполнения.
  6. IV. Порядок оказания услуг(выполнения работ)
  7. SWОT – анализ - пример
  8. V. Особенности оказания отдельных видов услуг(выполнения работ)
  9. Алгоритм выполнения работы
  10. Алгоритм компъютерной программы для выполнения лабораторной работы
  11. Алгоритм работы программы для выполнения лабораторной работы
  12. Анализ выполнения договорных обязательств и реализации продукции

По заданным n точкам построить линейную и квадратичную аппроксимации по методу наименьших квадратов. Нарисовать график. Сравнить решение с полиномом Лагранжа.

Очищаем память от предыдущих задач. Задаём формат отображения чисел с 5 знаками. Вводим исходные данные: вектор-столбцы x и y. С помощью команды polyfit (см. главу 1) находим коэффициенты линейной, квадратичной аппроксимации и интерполирующего полинома Лагранжа.

clear all % очищаем память

format short % формат отображения чисел с 5 знаками

x=[0.215;0.22;0.225;0.23] % вводим x

y=[4.62261;4.65855;4.51919;4.46422] % вводим y

n=length(x); % длина векторов исходных данных

p1=polyfit(x,y,1) % коэф. линейной аппроксимации

p2=polyfit(x,y,2) % коэф. квадратичной аппроксимации

p=polyfit(x,y,n-1) % коэф. интерпол.полинома

x =

0.2150

0.2200

0.2250

0.2300

y =

4.6226

4.6586

4.5192

4.4642

p1 =

-12.2906 7.3008

p2 =

-909.1000 392.2589 -37.6769

p =

1.0e+005 *

3.4625 -2.3203 0.5180 -0.0385

Построим теперь аппроксимирующий квадратичный полином путём непосредственной минимизации функции (7.5). Опишем символические переменные для аргумента и коэффициентов аппроксимации. Переведём координаты точек x и y в символические выражения. Вычислим функцию L. Продифференцируем её по всем аргументам. Составим систему уравнений и решим её. Подставим полученные значения в выражение для функции L.

syms xs a0 a1 a2 % описали символические переменные

xk=sym(x); yk=sym(y); % преобразовали в символические

ys=a2*xs^2+a1*xs+a0; % квадратичный полином

ysk=subs(ys,xs,xk); % подставили x(k)

L=simple(sum((ysk-yk).^2)); % составили L и упростили

dLda0=diff(L,a0); dLda1=diff(L,a1); dLda2=diff(L,a2);

Eq0=[char(dLda0) '=0']; % составляем уравнения

Eq1=[char(dLda1) '=0'];

Eq2=[char(dLda2) '=0'];

Sol=solve(Eq0,Eq1,Eq2); % решаем систему уравнений

ys=vpa(subs(ys,{a2,a1,a0},{Sol.a2,Sol.a1,Sol.a0}),8)

ys =

-909.10000*xs^2+392.25890*xs-37.676922

Если Вы всё проделали правильно, то коэффициенты полученного квадратичного полинома должны совпасть с p2.

Нарисуем теперь графики полученных функций. Зададим аргументы так же, как мы это делали в главе 1. Вычислим ординаты всех полиномов по команде polyval. Нарисуем непрерывной линией красного цвета квадратичную аппроксимацию, штриховой линией фиолетового цвета – линейную аппроксимацию, а полином Лагранжа изобразим пунктирной линией синего цвета. Экспериментальные точки покажем круглыми маркерами чёрного цвета. Зададим границы по оси абсцисс. Подпишем заголовок и оси координат.

xleft=x(1)-(x(2)-x(1)); % левая точка

xright=x(n)+(x(n)-x(n-1)); % правая точка

xpl=[xleft:(xright-xleft)/1000:xright]; % абсциссы

y1=polyval(p1,xpl); % линейная аппроксимация

y2=polyval(p2,xpl); % квадратичная аппроксимация

ylagr=polyval(p,xpl); % полином Лагранжа

plot(xpl,y2,'-r',xpl,y1,'--m',xpl,ylagr,':b',x,y,'or')

xlim([xleft xright])

title('\bfMinimal square approximation')

xlabel('x')

ylabel('y(x)')


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)