Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Ввод переделов интегрирования a и b




3. События, возникающие при нажатии кнопки «Вычисление» 4

 

3.1. Присвоить соответствующим переменным значения функции и пределов интегрирования.

% Переменной F присвоить значение свойства 'String' объекта 'FunctionName.

% Тип переменной 'String' - string (строка, символьное выражение), поэтому тип переменной F -

% string

F=get(handles.FunctionName,'String');

% Переменной strStart присвоить значение свойства 'String' объекта 'Start'

strStart=get(handles.Start,'String');

% C помощью функции str2num('str') преобразем строку strStart в число

a=str2num(strStart);

% Можно записать в одну строку, передавая функции str2num() в качестве

% аргумента значение свойства 'String' объекта 'Start'

% a=str2num(get(handles.Start,'String'));

strLast=get(handles.Last,'String');

b=str2num(strLast);

% b=str2num(get(handles.Last,'String'));

3.2. Вычислить интеграл

% Вычисление интеграла методом парабол (квадратурная формула). Ограничение

% функции quad(F,a,b) - подинтегральная функция F должна содержать поэлементные операции

% ('.*', './', '.^'), тип данных F - string.

I=quad(F,a,b);

3.3. Записать результат расчета в поле «Интеграл»

% Переменной strI присваиваем преобразованное в строку значение интеграла I

strI=num2str(I);

% Задать свойству 'String' объекта 'Integral' значение strI

set(handles.Integral,'String',strI);

4. События, возникающие при нажатии кнопки «График»

4.1. Очистка осей

% Очистить графическое окно объекта 'axes1'

axes(handles.axes1);

cla;

4.2. Присвоить соответствующим переменным значения функции и пределов интегрирования

% Для графического представления аналитически заданной функции

% воспользуемся фунцией ezplot (x,[min,max]), где x - символьное выражение

% или текстовая строка, содержащая аналитическое задание функциональной

% зависимости, [min,max] - область построения графика функции.

x=get(handles.FunctionName,'String');

min=str2num(get(handles.Start,'String')); 5

 

max=str2num(get(handles.Last,'String'));

4.3. Построить график функции, добавив подписи осей и сетку

ezplot (x,[min,max])

% Можно записать в одну строку

% ezplot (get(handles.FunctionName,'String'),[str2num(get(handles.Start,'String')),str2num(get(handles.Last,'String'))])

% Добавить подпись оси Y

ylabel('f(x)','FontSize',12);

% Добавить подпись оси X

xlabel('x','FontSize',12);

% Использовать основные лини сетки

set(handles.axes1, 'XMinorGrid', 'on', 'YMinorGrid', 'on');

% Использовать промужуточные лини сетки

set(handles.axes1, 'XGrid', 'on', 'YGrid', 'on', 'GridLineStyle', '-');

6. Пример рабочего окна приложения

 

 

Численное интегрирование функции одной переменной

Обыкновенный определенный интеграл, у которого известна его

первообразная Fx , вычисляется по формуле Ньютона-Лейбница

IFa  Fb . Поэтому для вычисления “простых”

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

Fx  в точках x = a и x = b.

 

Применяют численный метод интегрирования, если невозможно

вычисление интеграла по формуле Ньютона — Лейбница или

первообразная функция является сложной для вычисления значений.

Определенный интеграл с пределами интегрирования a и b можно

   

b

a

I f x dx

трактовать как площадь фигуры, ограниченной ординатами a и b,

осью абсцисс x и графиком подынтегральной функции fx .

Суть метода численного интегрирования заключаются в замене

подынтегральной функции на более простую, т.е. интерполяции

функции fx  на отрезке  a, b  подходящим полиномом,

интеграл которого можно вычислить аналитически.

Обычно отрезок  a, b  разбивается на n частей, к каждой из

которых применяется интерполяция функции и определяется

соответствующая формула интегрирования.

Метод прямоугольников

1) метод левых прямоугольников

() (),

b n

a i

f x dx h f a i h

    

где h b - a шаг интегрирования.

Рис. 1. Ступенчатая фигура, полученная по методу левых

Прямоугольников

Псевдокод алгоритма метода левых прямоугольников

ввод f (x), n, a, b

i = 0

S = 0

h = (ba)/ n

пока in − 1 делать

x = a + i∙h

S = S + f (xh

2) метод правых прямоугольников

() (),

b n

a i

f x dx h f a i h

() ((0,5))

b n

a i

f x dx h f a i h

function I=inegral_R(func,a,b,n)

% Функция возвращает значение определенного

интеграла, вычисленного методом

% прямоугольников.

% Входные аргументы:

% func - переменная, представляет функцию в виде

строки

% a - начало промежутка интегрирования

% b - конец промежутка интегрирования

% n - число узлов (число отрезков, разделяющих

интервал [a,b])

% Выходные аргументы:

% I - значение определенного интеграла функции на

отрезке [a,b]

% Чтобы задать свою функцию, используем функцию

inline, см. ниже или help inline

f=inline(func);

% теперь переменная f является зависимостью f(x),

записанной в переменной func.

%%%

I=0;

% h - шаг интегрирования

h=(b-a)/n;

for i=0:n-1

% х - высота прямоугольника

x=a+h*(i+0.5);

% f(x)*h - площадь прямоугольника

% I - сумма площадей прямоугольников

I=I+f(x)*h;

End

Метод Симпсона (парабол)

где xiaih

       1

1/2 1

() 4,

b n

i i i

a i

f x dx h f x f x f x

function I=inegral_P(func,a,b,n)

% Функция возвращает значение определенного

интеграла, вычисленного методом

% Симпсона (парабол).

% Входные аргументы:

% func - переменная, представляет функцию в виде

строки

% a - начало промежутка интегрирования

% b - конец промежутка интегрирования

% n - число узлов (число отрезков, разделяющих

интервал [a,b])

% Выходные аргументы:

% I - значение определенного интеграла функции на

отрезке [a,b]

% Чтобы задать свою функцию, используем функцию

inline, см. ниже или help inline

f=inline(func);

% теперь переменная f является зависимостью f(x),

записанной в переменной func.

%%%

I=0;

% h - шаг интегрирования

h=(b-a)/n;

for i=0:n-1

% x1 - начало i-го отрезка

x1=a+h*i;

% x2 - конец i-го отрезка

x2=x1+h;

% x12 - середина i-го отрезка

x12=(x1+x2)/2;

% (f(x1)+4*f(x12)+f(x2))*h/6 - площадь

параболы

% I - сумма площадей парабол

I=I+(f(x1)+4*f(x12)+f(x2))*h/6;

End





Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 532 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2817 - | 2385 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.