86110 (612647), страница 3

Файл №612647 86110 (Численные методы решения типовых математических задач) 3 страница86110 (612647) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

procedure vblvod(var f1,f2:text);

{Вывод содержимого записанного файла на экран}

var s1:string;

begin

clrscr;

assign(f1,'interpol.txt');

reset(f1);

assigncrt(f2);

rewrite(f2);

while not eof(f1) do

begin

Readln(f1,s1);

writeln(f2,s1);

end;

close(f2);

close(f1);

end;

procedure grafik(kolvo:integer; uzlbl,funktsiya:mas; c:mas);

{Построение графика полученной функции}

var driver,mode,Err,a1,b1,z,i,j:integer; s:string; xt,yt:real;

begin

driver:=detect;

InitGraph(driver,mode,'d:\tp7\bp\bgi');

err:=graphresult;

if err<>grok then writeln('Ошибка при инициализации графического режима')

else

begin

Setcolor(9);

line(320,0,320,480);

line(0,240,640,240);

settextstyle(smallfont,horizdir,3);

setcolor(10);

outtextxy(320,245,'0');

a1:=0;

b1:=480;

z:=-10;

for i:=0 to 20 do

begin

if z<>0 then

3. Среднеквадратическое приближение функции


3.1 Постановка задачи

Разработать схему алгоритма и написать программу на языке Turbo Pascal 7.0 для выполнения среднеквадратического приближения функции, заданной в узлах.


3.2 Математическая формулировка задачи

Пусть имеется множество функций , принадлежащих линейному пространству функций. Под близостью в среднем интерполируемой и интерполирующей функций будем понимать результат оценки интеграла

, (3.1)

где - весовая функция.

Такое приближение называют среднеквадратичным.


3.3 Обзор существующих численных методов решения задачи

Задача среднеквадратичного приближения возникает во многих областях прикладных исследований, например, при статистической обработке данных эксперимента с использованием регрессивного анализа, при оценивании параметров моделей, в задачах фильтрации и т.п.

Когда уровень неопределенности в задании приближаемой функции f(xi), i=1..m, достаточно велик, что характерно для обработки экспериментальных данных, бессмысленно требовать выполнения условий интерполирования; кроме того, число точек задания функции f(xi) часто весьма велико. Все это делает применение интерполирования мало перспективным по причинам плохой обусловленности задачи высокой размерности и проблем сходимости процесса интерполяции

Одной из наиболее простых и, поэтому, широко используемых приближающих функций является алгебраический полином

Метод среднеквадратичного приближения обеспечивает построение полинома Pn(x), исходя из минимизации величины

Рассмотренный метод приближения минимизирует среднеквадратичное уклонение аппроксимирующего полинома от аппроксимируемой функции, но не гарантирует от значительных локальных ошибок. Для предотвращения подобной возможности используют полиномы наилучшего равномерного приближения.

в пространстве параметров a0 , a1 ,...,an. Существуют различные подходы к решению задачи минимизации функции D(a). Простейший из них приводит к необходимости решения нормальной системы линейных алгебраических уравнений

Однако, уже при n > 5 матрица такой системы оказывается настолько плохо обусловленной, что полученные из (3.4) значения aj оказываются мало пригодными для вычисления Pn(x). Поэтому, при необходимости построения полиномов наилучшего среднеквадратичного приближения более высоких степеней применяют другие алгоритмы, например, метод сингулярного разложения.


3.4 Численный метод решения задачи

Можно рассмотреть две задачи:

1 - подобрать функцию так, чтобы выполнялось неравенство

; (3.5)

2 - найти наилучшее приближение, т.е. такую функцию , чтобы было справедливым соотношение

. (3.6)

Далее займемся отысканием наилучшего приближения.

Разложим функцию по системе линейно независимых функций :

. (3.7)

В дальнейшем для сокращения записи будем пользоваться определением скалярного произведения в пространстве функций :

.

Подставляя (3.7) в условие (3.6), получим

.

Дифференцируя это выражение по и приравнивая производные нулю, получим

. (3.8)

Определитель этой системы есть определитель Грама функций . В силу их линейной независимости этот определитель не равен нулю. Следовательно, из системы (3.8) можно найти коэффициенты , определяющие функцию согласно (3.6) и минимизирующие интеграл от погрешности . Таким образом, наилучшее среднеквадратичное приближение существует и оно единственно.

При использовании ортонормированной системы функций система (3.8) упрощается:

,

т.е. являются коэффициентами Фурье, а наилучшее приближение есть ряд Фурье, обрываемый на каком-то члене.

Доказано, что в любом линейно нормированном пространстве при линейной аппроксимации вида (3.4) наилучшее приближение существует, хотя оно может быть не единственным.

В тех случаях, когда функции не ортогональны, при определитель Грама уменьшается, приближаясь к нулю. Тогда система становится плохо обусловленной и ее решение дает большую погрешность. В этой ситуации обычно берут не более пяти-шести членов в сумме (3.7).

В качестве чаще всего используют полиномы Лежандра, Чебышева, Лагерра, Эрмита, ортогональные с заданным весом.

Рассмотрим частный случай, когда необходимо найти наилучшее приближение функции, заданной таблично. Для вещественных функций, заданных на конечном множестве точек, скалярное произведение определяется формулой

, (3.9)

где - число заданных узлов.

Условие наилучшего среднеквадратичного приближения записывается следующим образом:

. (3.10)

Полагая , где , и подставляя этот многочлен в (3.10), придем к системе (3.8), в которой скалярные произведения вычисляют согласно (3.9). Описанная процедура аппроксимации носит название метода наименьших квадратов.

Наиболее употребительный вариант метода наименьших квадратов соответствует случаю степенного вида функций , т.е. , причем .

Система уравнений (3.8) при этом принимает вид

, , (3.11)

где .

3.5 Схема алгоритма

Рис. 3.1 Основная программа

Рис. 3.2 Процедура ввода данных

Рис 3.3 Процедура среднеквадратичного приближения

program srpribl; {$R+}

uses graph;

label 1,2,3,4;

const m=2;

type mas= array [1..21] of real;

mas1= array [1..m] of real;

mas2= array [1..m,1..m+1] of real;

var i,j:byte;

y1,x1:mas;

xx1:mas1;

a1:mas2;

procedure vvod (x,y: mas);

begin

x[1]:=0;y[1]:=0.290234387293458; x[2]:=0.25;y[2]:=0.201247759722173;

x[3]:=0.5;y[3]:=0.0712686786428094;x[4]:=0.75; y[4]:=0.044294935464859;

x[5]:=1;y[5]:=-0.0745576142333448; x[6]:=1.25;y[6]:=-0.0807833694852889;

x[7]:=1.5;y[7]:=-0.233371530473232;x[8]:=1.75;y[8]:=-0.283957027737051;

x[9]:=2;y[9]:=-0.308697660081089;x[10]:=2.25;y[10]:=-0.42091366359964;

x[11]:=2.5;y[11]:=-0.516991161741316;x[12]:=2.75;y[12]:=-0.427710095947851;

x[13]:=3;y[13]:=-0.374748698528856;x[14]:=3.25;y[14]:=-0.229905794281513;

x[15]:=3.5;y[15]:=-0.205365492492496639;x[16]:=3.75;y[16]:=-0.129155068378896;

x[17]:=4;y[17]:=-0.0438349825330079;x[18]:=4.25;y[18]:=0.0294586319476366;

x[19]:=4.5;y[19]:=0.132592592108995;x[20]:=4.75;y[20]:=0.206369574274868;

x[21]:=5;y[21]:=0.26959548862651;

end;

procedure srpribl (xx:mas1;a:mas2);

var l:real;

s,z,k1:integer;

begin

for s:=1 to m-1 do

for z:=s+1 to m do

begin

a[z,s]:=-a[z,s]/a[s,s];

for k1:=s+1 to m+1 do a[z,k1]:=a[z,k1]+a[z,s]*a[s,k1]

end;

xx[m]:=a[m,m+1]/a[m,m]; writeln(' xx[',m,']=',xx[m]:2:3);

for i:=m-1 downto 1 do

begin

l:=a[i,m+1];

for j:=i+1 to m do l:=l-xx[j]*a[i,j];

xx[i]:=l/a[i,i]; writeln(' xx[',i,']=',xx[i]:2:3)

end

end;

procedure Grafik (var x,y:mas;xx:mas1)

var ec,gd,gm:integer;

begin

gd:=detect;

initgraph (gd,gm,' ');

ec:=graphresult;

if ec<>grok then begin

writeln ('Oshibka v inicializacii grafika');

halt (1);

end;

setcolor(white);

line (0,420,620,420);

line (0,0,0,420);

setcolor (white);

for i:=1 to 21 do begin

circle (round (x[i]*150),round (y[i]*100),1);

end;

setcolor (yellow);

for i:=1 to m do begin

circle (round (x[i]*150),round (xx[i]*100),1);

end;

setcolor (green);

for i:=2 to m do begin

line (round (x[i-1]*150),round(xx[i-1]*100),round (x[i]*150),

round (xx[i]*100));

end;

end;

begin

vvod(x1,y1);

for i:=1 to 2 do

for j:=1 to 3 do a[i,j]:=0;

a[1,1]:=21;

for i:=1 to 21 do

begin

a[1,2]:=a[1,2]+x[i];

a[2,1]:=a[2,1]+x[i];

a[2,2]:=a[2,2]+x[i]*x[i];

a[1,3]:=a[1,3]+y[i];

a[2,3]:=a[2,3]+y[i]*x[i]

end;

srpribl(xx1,a1);

for i:=1 to 21 do

writeln(y[i]:2:3,' ',xx[1]+xx[2]*x[i]:2:3);

Grafik(x1,y1,xx1);

end.

3.7 Тестовый пример

Найти тригонометрический многочлен наилучшего среднеквадратичного приближения наименьшей степени со среднеквадратичным отклонением меньшим для функции

Введем функцию

Вычислим коэффициенты Фурье

Вычислим частичные суммы ряда Фурье

Вычислим среднеквадратичное отклонение

Найдем минимальное , при котором будет меньше

Следовательно многочлен степени является наименьшим многочленом, удовлетворяющим нашим условиям. Построим график этого многочлениа и исходной функции

Характеристики

Тип файла
Документ
Размер
20,82 Mb
Тип материала
Предмет
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее