Этапы обучения нейронной сети 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Этапы обучения нейронной сети



1. Сбор данных для обучения

2. Подготовка и нормальизация данных

3. Выбор топологии сети

4. Экспериментальных подбор характеристик сети

5. Экспериментальный подбор параметров обучения

6. Непосредственно обучение

7. Проверка адекватности модели

8. Корректировка параметров, окончательное обучение

9. Применение готовой модели

 

Блок-схема. Этапы обучения нейронной сети

 

Преимущества

• Возможность решения задач, которые не решаются другими алгоритмами

• Самообучение

• Устойчивость к шумам входных данных

• Адаптация к изменениям

• Отказоустойчивость

• Высокое быстродействие

 

Недостатки

• Вероятностная природа результатов вычислений

• Сложность выполнения многоэтапных решений

• Сложность реализации классических вычислений

• Сложность получения обобщенных моделей

 

Таким образом искусственные нейронные сети подходят для решения слабо и неформализованных задач:

• Распознавание образов, голоса и др.

• Сжатие информации, фильтрация, оптимизаци

• Прогнозирование экономических показателей

• Замена традиционных ресурсоемких алгоритмов

• Генерация изображений, звука, текста

 

Применение ИНС в химии

QSAR (Quantitative Structure-Activity Relationship). Поиск количественных соотношений структура-свойство:

Физические свойства химических соединений

Реакционная способность

Спектроскопические свойства

Супрамолекулярные свойства

 


 

ГЛАВА 2. ЗАДАЧИ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ

Программирование по блок-схемам

Для начинающих изучение курса вычислительной математики, традиционным является выполнение упражнений по блок схемам. Это позволяет развить ряд элементарных знаний, умений и навыков программирования и в том числе отладки несложных программ на МАТЛАБе.

Основные элементы блок-схем

Начало вычислительного процесса.                     Конец вычислений.

Начало
Конец

 


Блок обмена информацией;

ввод данных и вывод результатов.

 

Вычислительный блок;    

выполнение операции или группы

операций вычислительного процесса.

 

Алгоритмический блок;                                        Логический блок;

                                       выбор направления выполнения алгоритма

                                                                   в зависимости от условия.

 

 

Циклический блок;

организует многократное выполнение

вложенных блоков.

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

Программа - алгоритм решения задачи записанный на понятном машине языке в виде точно определенной последовательности операций - программы для ЭВМ. Составление программ (программирование) обычно производится с помощью промежуточного (алгоритмического) языка. В алгоритмах и программах для обозначения данных используются переменные, которым даются уникальные имена (идентификаторы). Алгоритмы будем представлять в виде блок-схем, а программы записывать на языке программирования MATLAB. Программа в MATLAB оформляется в виде М-файла и осуществляет необходимые операции над массивами. Массив представляет собой набор переменных с одним именем, одним типом и разными индексами. Каждая переменная называется элементом массива. Количество хранящихся в массиве элементов называется размером массива.

2
Блок-схема 1. Метод деления пополам

На блок-схеме 1 в верхней части показаны исходные значения переменных и правильные ответы, а в нижней части показаны еще раз исходные значения переменных и функция.

По блок-схеме 1 составлена программа. Она состоит из следующих частей:

GLAV главная управляющая функция, вызывает остальные по мере необходимости;

DATA содержит исходные данные, объявленные как глобальные переменные. Эти же переменные объявлены как глобальные в GLAV. После вызова в GLAV функции DATA эти переменные получают значения (инициируются);

fun _ BS _1 функция осуществляющая вычисления в соответствии с блок-схемой 1;

f функция указанная в блок-схеме как f (x)= x 2 -5;

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

function DATA %исходные данные

global a b eps n_plot_dots; %глобальные переменные

a=2;

b=3;

eps=0.0001;%точность расчета

n_plot_dots=101;%количество точек графика

end

 

function [ fx ] = f(x)%функция корни f(x)=0 ищем

fx=x.^2-5;%поставлена точка для поэлемент. выполн.-я действий

end

 

function [ x, fx ] = fun_BS_1(a, b, eps)

fa=f(a);

for i=1:100 %цикл со счетчиком ограничивает нас 100 повторов

x=(a+b)/2;

if fa*f(x)<0

   b=x;

else

   a=x;

end % if

if abs(b-a)<eps %проверка условия прерывания цикла

   i %вывод числа выполненных итераций

   break %прерывание цикла

end% if

end % for i

x=(a+b)/2;

fx=f(x);

end % function

 

function GLAV_BS_1 %главная исполняемая программа

global a b eps x fx n_plot_dots;

DATA;%задаются исходные данные из файла DATA

[ x, fx ] = fun_BS_1(a, b, eps);%вызов функции

REPORT;%вызов вывода результатов

end

 

function REPORT %вывод результатов

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);%задаем массив из нулей нужного

fmas=zeros(n_plot_dots);% размера

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);%функция num2str

disp(['b = ' num2str(b,'%10.5f') ]);% преобразует число в

disp(['eps = ' num2str(eps,'%10.5f') ]);% строку символов,

disp('Results'); % указываем '%10.5f' формат вывода (число с

disp(['x = ' num2str(x,'%10.5f') ]);% заданным количеством

disp(['fx = ' num2str(fx,'%10.5f') ]);%знаков после запятой

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i         x           fx '); 

disp('_____________________________')

i=0;

for i=1:length(xmas)%вывод таблицы результатов, строки

xx=xmas(i);%формируются командой sprintf, указаны

ffx=fmas(i);%форматы вывода перемнных и табуляция между

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));%ними

end %for

plot(xmas,fmas,'r.');%вывод графика функции

grid on;

xlabel('x');

ylabel('y');

title('Block shem #1');

end

 

Блок - схема 2. Второй вариант метода деления пополам

Текст программы к блок-схеме 2.

function DATA

global a b eps n_plot_dots;

a=2;

b=3;

eps=0.0001;

n_plot_dots=101;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ x, fx ] = fun_BS_2(a, b, eps)

fa=f(a);

for i=1:100 %цикл со счетчиком ограничивает число итераций

if abs(b-a)>eps % проверка условия продолжения

   x=(a+b)/2;

   if fa*f(x)<0

       b=x;

   else

       a=x;

   end %if

else % вариант требующий прерывания цикла

   i % вывод числа выполненных итераций

   break;% прерывание цикла

end %if

end %for i

x=(a+b)/2;

fx=f(x);

end % function

 

function GLAV_BS_2

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_2(a, b, eps);

REPORT;

end

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

 if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i         x           fx '); 

disp('_____________________________')

i=0;

for i=1:length(xmas)%подготовка таблицы аргумента и функции

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;%покрытие сеткой

xlabel('x');%подписи к осям

ylabel('y');

title('Block shem #2');%подпись к графику

end

 

Блок-схема 3. Метод касательных (Ньютона)

function DATA

global a b eps n_plot_dots;

a=2;

b=3;

eps=0.0001;

n_plot_dots=101;

end

 

function [ fx ] = f(x)%функция f(x)=0 корни ее ищем

fx=x.^2-5;

end

 

function [ fpx ] = fp(x)%производная от функции

fpx=2*x;

end

 

function [ x, fx ] = fun_BS_3(a, b, eps)

h=b-a;

x=a;

for i=1:100

if abs(h)>eps

   h=f(x)/fp(x);

   x=x-h;

   if and(a<x, x<b)% если a<x<b продолжить

   else

       x=b;

   end %if

else % вариант требующий прерывания цикла

   i

   break;%прерывание цикла

end %if

end %for i

fx=f(x);

end % function

 

function GLAV_BS_3

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_3(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' __________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #3');

end

Блок - схема 4

Программу к блок-схеме 4 расположим перед блок-схемой.

function DATA

global x dx eps;

x=3;

dx=0.1;

eps=0.0001;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ res ] = fun_BS_4(x, dx, eps)

i=1;

d1=(f(x+dx)-f(x))/dx;

for j=1:100

dx=dx/2;

if i==1

   d2=(f(x+dx)-f(x))/dx;

   i=2;

else

   d1=(f(x+dx)-f(x))/dx;

   i=1;

end %if

if abs(d1-d2)>eps

else

   j

   break;

end %if

end %for j

if i==1

res=d1;

else

res=d2;

end %if

end % function

 

function GLAV_BS_4

global x dx eps res;

DATA;

[ res ] = fun_BS_4(x, dx, eps);

REPORT;

end

 

function REPORT

global x dx eps res;

disp('Block scheme #4');

disp('Arguments');

disp(['x = ' num2str(x,'%10.5f') ]);%

disp(['dx = ' num2str(dx,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Result');

disp(['res = ' num2str(res,'%10.5f') ]);

end

 

Блок - схема 5

function DATA

global a b eps n_plot_dots;

a=1;

b=3;

eps=0.0001;

n_plot_dots=101;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

function [ x, fx ] = fun_BS_5(a, b, eps)

x=a;

f1=f(a);

h=b-a;

for i=1:100

if abs(h)>eps

   h=h/3;

   for j=1:100

       x=x+h;

       f2=f(x);

       if f1*f2>0

       else

           j

           break;

       end %if

   end %for j

   x=x-h;

else

   i

   break;

end %if

end %for

x=x-h/2;

fx=f(x);

end % function

 

function GLAV_BS_5

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_5(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #5');

end

Блок - схема 6

function DATA

global a b eps n_plot_dots;

a=1;

b=3;

eps=0.0001;

n_plot_dots=101;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ x, fx ] = fun_BS_6(a, b, eps)

h=(b-a)/2;

x=a;

fa=f(x);

for i=1:100

if abs(h)>eps

   x=x+h;

   fx=f(x);

   if fa*fx<0

       x=x-h;

   else

       fa=fx;

   end %if

   h=h/2;

else

   i

   break;

end %if

end %for i

fx=f(x);

end % function

 

function GLAV_BS_6

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_6(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #6');

end

Блок - схема 7

function DATA

global a b eps n_plot_dots;

a=-1;

b=2;

eps=0.0001;

n_plot_dots=101;

end

 

function [ x, fx ] = fun_BS_7(a, b, eps)

x=a;

f1=f(x);

h=(b-a)/3;

for i=1:100

if abs(h)>eps

   x=x+h;

   if x>b

       x=b;

   end %if

   f2=f(x);

   if f2>f1

       h=-h/3;

   end %if

   f1=f2;

else

   i

   break;

end %if

end % for i

x=x+2*h;

fx=f(x);

end % function

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function GLAV_BS_7

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_7(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #7');

end

Блок - схема 8

function DATA

global a b eps n_plot_dots;

a=1;

b=3;

eps=0.0001;

n_plot_dots=101;

end

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ x, fx ] = fun_BS_8(a, b, eps)

n=log((b-a)/eps)/log(2);

fa=f(a);

i=0;

for j=1:100

if i<n

   x=(a+b)/2;

   fx=f(x);

   if fa*fx<0

       b=x;

   else

       a=x;

   end %if

   i=i+1;

else

   j

   break;

end %if

end %for

fx=f(x);

end % function

 

function GLAV_BS_8

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_8(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #8');

end

Блок - схема 9

function DATA

global x0 y0 xk n eps;

x0=1;

y0=1;

xk=2;

eps=0.01;

n=10;

end

 

function [ fxy ] = f(x,y)

fxy=x*y;

end

 

function [ xmas, fmas, Jres ] = fun_BS_9(x0,y0,xk,n, eps)

yk=0;

y=2*eps;

for i=1:100

if abs(yk-y)>eps

   h=(xk-x0)/n;

   yk=y;

   x=x0;

   y=y0;

   n=n*2;

   for j=1:100

       if x<xk

           y=y+f(x,y)*h;

           x=x+h;

           xmas(j)=x;

           fmas(j)=y;

           Jres=j;

       else

           j               

           break;

       end %if

   end %for j

   n=n*2;

else

   i

   break;

end %if

end % for i

disp ('OK BS 9');

end % function

function GLAV_BS_9

global x0 y0 xk n xmas fmas Jres eps;

DATA;

[ xmas, fmas, Jres ] = fun_BS_9(x0,y0,xk,n,eps);

REPORT;

end

 

function REPORT

global x0 y0 xk n eps xmas fmas Jres;

disp('Arguments');

disp(['x0 = ' num2str(x0,'%10.5f') ]);

disp(['xk = ' num2str(xk,'%10.5f') ]);

disp(['y0 = ' num2str(y0,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['Jres = ' num2str(Jres,'%10.5f') ]);

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:Jres

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.5f\t%10.5f\t %10.5f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #9');

end

Блок - схема 10

function DATA

global a b eps n_plot_dots;

a=-1;

b=2;

eps=0.0001;

n_plot_dots=101;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ x, fx ] = fun_BS_10(a, b, eps)

x1=a;

x4=b;

Z=1/3;

for i=1:100

x2=x1+Z*(x4-x1);

x3=x4-Z*(x4-x1);

F2=f(x2);

F3=f(x3);

if F2<F3

   x4=x3;

else

   x1=x2;

end %if

if abs(x4-x1)>2*eps

else

   i

   break;

end %if

end %for i

x=(x1+x4)/2;

fx=f(x);

end % function

 

function GLAV_BS_10

global a b eps x fx n_plot_dots;

DATA;

[ x, fx ] = fun_BS_10(a, b, eps);

REPORT;

end

 

function REPORT

global a b eps x fx n_plot_dots;

xmas=zeros(n_plot_dots);

fmas=zeros(n_plot_dots);

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results');

disp(['x = ' num2str(x,'%10.5f') ]);

disp(['fx = ' num2str(fx,'%10.5f') ]);

h=(b-a)/(n_plot_dots-1);

for i=1:n_plot_dots

if i==1

   xmas(i)=a;

else

   xmas(i)=xmas(i-1)+h;

end %if

fmas(i)=f(xmas(i));

end

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:length(xmas)

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #10');

end

Блок - схема 11

function DATA

global x0 y0 xk n;

x0=0;

y0=1;

xk=1;

n=10;

end

 

function [ fxy ] = f(x,y)

fxy=x*y;

end

 

function [ xmas, fmas, Jres ] = fun_BS_11(x0,y0,xk,n)

h=(xk-x0)/n;

x=x0;

y=y0;

for i=1:100

if x<xk

   f0=f(x,y);

   x1=x+h/2;

   y1=y+f0*h/2;

   y=y+f(x1,y1)*h;

   x=x+h;

   xmas(i)=x;

   fmas(i)=y;

   Jres=i;

else       

   i

   break;

end %if

end %for i

disp('OK BS 11');

end % function

 

function GLAV_BS_11

global x0 y0 xk n xmas fmas Jres;

DATA;

[ xmas, fmas, Jres ] = fun_BS_11(x0,y0,xk,n);

REPORT;

end

 

function REPORT

global x0 y0 xk n xmas fmas Jres;

disp('Arguments');

disp(['x0 = ' num2str(x0,'%10.5f') ]);

disp(['xk = ' num2str(xk,'%10.5f') ]);

disp(['y0 = ' num2str(y0,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(' i       x         fx '); 

disp(' ________________________________')

i=0;

for i=1:Jres

xx=xmas(i);

ffx=fmas(i);

disp(sprintf('%10.5f\t%10.5f\t %10.5f',i,xx,ffx));

end %for

plot(xmas,fmas,'r.');

grid on;

xlabel('x');

ylabel('y');

title('Block shem #11');

end

Блок - схема 12

function DATA

global a b eps n;

a=1;

b=2;

eps=0.0001;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s ] = fun_BS_12(a, b, n, eps)

s1=0;

s=2*eps;

for i=1:100

if abs(s-s1)>eps

   s1=s;

   h=(b-a)/n;

   x=a+h/2;

   s=0;

   for j=1:100

       if x<b

           s=s+f(x);

           x=x+h;

       else

           j

           break;

       end %if

   end %for j

   s=s*h;

   n=n*2;

else

   i

   break;

end %if

end %for i

end % function

 

function GLAV_BS_12

global a b eps s n;

DATA;

[ s ] = fun_BS_12(a, b, n, eps)

REPORT;

end

function REPORT

global a b eps s n;

disp('BS 12');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

end

Блок - схема 13

function DATA

global a b n;

a=1;

b=2;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s, s1 ] = fun_BS_13(a, b, n)

h=(b-a)/n;

s=0;

i=1;

for i=1:100

if i<=n

   x=a+(i-1)*h;

   s=s+f(x);

   i=i+1;

else

   i

   break;

end %if

end %for i

s1=0;

for x=a:h:b-h

s1=s1+f(x);

end %for i

s=s*h;

s1=s1*h;

end % function

 

function GLAV_BS_13

global a b s s1 n;

DATA;

[ s, s1 ] = fun_BS_13(a, b, n);

REPORT;

end

 

function REPORT

global a b s s1 n;

disp('BS 13');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

disp(['s1 = ' num2str(s1,'%10.5f') ]);

end

 

Блок - схема 14

function DATA

global a b n;

a=1;

b=2;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s, s1 ] = fun_BS_14(a, b, n)

h=(b-a)/n;

s=0;

x=a+h/2;

for i=1:100

s=s+f(x);

x=x+h;

if x<b

else

   i

   break;

end %if

end %for i

s1=0;

for x=a+h/2:h:b

s1=s1+f(x);

end %for i

s=s*h;

s1=s1*h;

end % function

 

function GLAV_BS_14

global a b s s1 n;

DATA;

[ s, s1 ] = fun_BS_14(a, b, n);

REPORT;

end

 

function REPORT

global a b s s1 n;

disp('BS 14');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

disp(['s1 = ' num2str(s1,'%10.5f') ]);

end

Блок - схема 15

function DATA

global a b n;

a=1;

b=2;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s, s1 ] = fun_BS_15(a, b, n)

h=(b-a)/n;

s=0;

x=a+h/2;

for i=1:100

if x<b

   s=s+f(x);

   x=x+h;

else

   i

   break;

end %if

end %for i

s1=0;

for x=a+h/2:h:b

s1=s1+f(x);

end%for i

s=s*h;

s1=s1*h;

end % function

 

function GLAV_BS_15

global a b s s1 n;

DATA;

[ s, s1 ] = fun_BS_15(a, b, n);

REPORT;

end

 

function REPORT

global a b s s1 n;

disp('BS 15');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

disp(['s1 = ' num2str(s1,'%10.5f') ]);

end

Блок - схема 16

function DATA

global a b n;

a=1;

b=2;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s, s1 ] = fun_BS_16(a, b, n)

h=(b-a)/n;

s=0;

i=0;

for j=1:100

x=a+i*h;

s=s+(f(x)+f(x+h))/2;

i=i+1;

if i<=n-1

else

   j

   break;

end %if

end % for j

s1=0;

for i=0:n-1

x=a+i*h;

s1=s1+(f(x)+f(x+h))/2;

end % for i

s=s*h;

s1=s1*h;

end % function

 

function GLAV_BS_16

global a b s s1 n;

DATA;

[ s, s1 ] = fun_BS_16(a, b, n);

REPORT;

end

 

function REPORT

global a b s s1 n;

disp('BS 16');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

disp(['s1 = ' num2str(s1,'%10.5f') ]);

end

 

Блок - схема 17

function DATA

global a b n;

a=1;

b=2;

n=10;

end

 

function [ fx ] = f(x)

fx=x.^2-5;

end

 

function [ s, s1 ] = fun_BS_17(a, b, n)

h=(b-a)/n;

x=a;

s=0;

i=2;

for j=1:100

s=s+f(x)+4*f(x+h)+f(x+2*h);

x=x+2*h;

i=i+2;

if i<=n

else

   j

   break;

end %if

end %for j

x=a;

s1=0;

for i=0:n-1

s1=s1+f(x)+4*f(x+h)+f(x+2*h);

x=x+2*h;

end %for i

s=h*s/3;

s1=s1*h/3;

end % function

 

function GLAV_BS_17

global a b s s1 n;

DATA;

[ s, s1 ] = fun_BS_17(a, b, n);

REPORT;

end

 

function REPORT

global a b s s1 n;

disp('BS 17');

disp('Arguments');

disp(['a = ' num2str(a,'%10.5f') ]);

disp(['b = ' num2str(b,'%10.5f') ]);

disp(['n = ' num2str(n,'%10.5f') ]);

disp('Results');

disp(['s = ' num2str(s,'%10.5f') ]);

disp(['s1 = ' num2str(s1,'%10.5f') ]);

end

Погрешности

Основная задача теории погрешностей состоит в оценке погрешности результата вычислений при известных погрешностях исходных данных.



Поделиться:


Последнее изменение этой страницы: 2022-01-22; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.157.45 (0.659 с.)