Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLab.doc
Скачиваний:
5
Добавлен:
17.11.2018
Размер:
818.69 Кб
Скачать
  1. Вычисление интеграла.

Самым простым методом вычисления определенных интегралов является метод трапеций, который реализован функцией trapz.

Вычислим интеграл

>> x=0:pi/100:pi;

>> y=sin(x);

>> z=trapz(x,y);

z =

1.9998

Получили приближенное значение интеграла. Увеличив шаг интегрирования до pi/1000, получим точное значение – 2. Если вектор x не задан, то по умолчанию предполагается, что шаг интегрирования равен 1.

Более точные методы реализованы в функциях quad, quad8, quadl.

[i,n]=quad(‘<fun>’, a, b, [tol, trace])

fun - имя файла-функции или символьное выражение, определяющее подинтегральную функцию;

i = значение интеграла;

n – количество значений функции (или количество точек)

a, b – пределы интегрирования;

tol – погрешность вычислений;

trace – признак; если значение 1, то график строится, если 0, то не строится.

>> [i,n]=quad8('func',0,pi,1e-8,1)

i =

7.1938

n =

33

Функция quad8 основана на квадратурной формуле Симпсона. При использовании этой формулы задаётся требуемая точность вычислений, а шаг подбирается автоматически (в отличие от функции trapz). По умолчанию точность равна 10-6.

Имя функции может быть задано символьным выражением.

>> [i,n]=quad8('sin(x)',0,pi,1e-8,0)

i =

2.0000

n =

33

Функция quadl использует более точные формулы Гаусса-Лобато.

>> [i,n]=quadl('sin(x)',0,pi,1e-8,0)

i =

2.0000

n =

48

  1. Нахождение нулей функции.

Для решения уравнений вида f(x)=0 (нахождение нулей функции) предназначена функция fzero, которая находит приближенное значение корня уравнения по заданному начальному приближению.

Функция fzero находит значения аргумента, при котором функция обращается в 0.

fzero(‘<fun>’, x0, [tol, trace]), где

fun - имя файл-функции или символьное выражение (формула), заключенные в апострофы;

х0 – начальное значение х, от которого начнётся процесс;

tol погрешность вычислений;

trace – признак; если значение 1, то график строится, если 0, то не строится.

Если корней несколько, то задавая различные начальные значения, можно найти различные корни.

>> fzero('sin(x)/(x*2)',-7)

ans =

-6.2832

  1. Нахождение min на заданном интервале.

Вычисление локального минимума функции одной переменной на заданном отрезке выполняет функция fminbnd, синтаксис которой аналогичен синтаксису функции fzero. При использовании функции поиска минимума рекомендуется предварительно построить график исследуемой функции, чтобы точнее определить отрезки поиска минимума.

[x, y] = fminbnd(‘имя ф-ции’, a, b), где

xаргумент функции(вычисленное значение, при котором достигается минимум);

yзначение функции в точке минимума;

a, b – интервал на котором ищется минимум;

Результат – вектор, состоящий из двух значений.

Пример.

Для функции sin(x)/(x*2) найти локальный минимум на заданном интервале, вывести значение функции и построить график.

>> [x,y]=fminbnd('sin(x)/(x*2)',-10,1)

x =

-4.4934

y =

-0.1086

Если хотим иметь только значение аргумента, то обращение к функции будет:

>> fminbnd('sin(x)/(x*2)',-10,1)

ans =

-4.4934

или

>> x=fminbnd('cos(x)',3,4)

x =

3.1416

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]