Файл: М.А. Тынкевич Система Matlab Справочное пособие к курсу Численные методы анализа.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.06.2024

Просмотров: 108

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

6

Рабочую область можно сохранять (save) как МАТ-файл и вызывать (load) . Так командой save myfile v1 v2 сохраняем в файле с именем myfile переменные v1и v2, а командой save myfile du*rak – переменные, имена которых начинаются на du и заканчиваются на rak.

Можно очищать рабочую область полностью командой clear или частично - clear <список имен>.

2. Элементарные математические функции

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

pi = 4*atan(1)=imag(log(-1))=3.1415926535897..;

abs(X) – абсолютная величина: для комплексного числа a+bi

его модуль равен a2 +b / abs(3-4i)=5 , abs(-13)=13;

angle(X) – аргумент комплексного числа (из диапазона [-π,π]): комплексное X=a+bi представимо как r eiϕ, где a = r cosϕ, b = r sin ϕ:

» angle(3+4i)

ans = 0.9273 ; » angle(1)

ans = 0 ;

» angle(4+3i)

ans = 0.6435 ;

 

real(X), imag(X) – действительная и мнимая часть числа;

conj(X) – комплексно-сопряженное:

 

» conj(2+3i)

ans =

2.0000 - 3.0000i

;

ceil(X), fix(X), floor(X), round(X)

- округления (до ближайшего

целого, не меньшего Х; отбрасывание дробной части; до ближайшего целого, не большего Х; до ближайшего целого);

mod(X,Y) - остаток от деления X на Y; sign(X) – знак числа (для комплексных X / |X|);

gcd(m,n) –наибольший общий делитель для целых чисел; если использовать оператор [g,c,d]=gcd(m,n), то дает указанный делитель и множители c,d такие , что g==m*c+n*d :

» f=gcd(18,27)

f =

9

 

 

» [g,c,d]=gcd(18,27)

g =

9

c = -1 d =

1;

lcm(m,n) – наименьшее общее кратное:

 

» lcm(34,51)

ans =

102;

 

rat(X) , rat (X,k) – представление

цепной дробью с точностью

|X| 10-k/2 (по умолчанию |X| 10-6 ):

 

 

 

» rat(12.5)

ans =13 + 1/(-2)

 

» rat(12.546)

ans =13 + 1/(-2 + 1/(-5 + 1/(15)));

rats(X), rats(X,k) – представление отношением

целых чисел :


 

 

 

 

 

7

 

 

 

 

» rats(12.546)

 

ans =

2045/163;

 

sqrt(X) – квадратный корень :

 

 

 

 

» sqrt(5)

ans =

2.2361

 

 

 

» sqrt(3+4i)

ans =

2.0000 + 1.0000i;

 

exp(X) – экспонента ex (ex+iy= ex(cos y+i siny)) :

 

 

 

» exp(1)

 

ans =

2.7183

 

 

» exp(2+i)

ans =

3.9923 + 6.2177i ;

 

pow2(X) – двоичная экспонента

2x;

 

 

log(X) – натуральный логарифм;

 

 

 

 

log2(X),

log10(X) –логарифм по основанию 2 и основанию 10;

 

sin(X) cos(X) tan(X) cot(X)

csc(X) sec(X) – тригонометрические

функции (синус, косинус, тангенс, котангенс, косеканс, секанс):

 

sin(x+iy)=sin(x) ch(y) +i cos(x) sh(y); cos(x+iy)=cos(x) ch(y) -i sin(x) sh(y),

 

 

tg (X)= sin(X)/ cos(X) ; ctg(X)=cos(X)/sin(X);

 

 

 

cosec(X)=1/sin(X);

sec(X)=1/ cos(X) :

 

» sin(pi/2)

ans =

1 ;

» sin(3+4i)

ans = 3.8537 -27.0168i

;

asin(X)

acos(X) atan(X) acot(X)

acsc(X) asec(X) – обратные

тригонометрические функции (арксинус, арккосинус и т.д.):

 

» asin(1/sqrt(2))

ans = 0.7854 ;

» asin(3+4i)

ans = 0.6340 + 2.3055i

;

atan2(Y,X) - круговой арктангенс Arctg (только для действи-

тельных частей аргументов), берется в интервале [-π,π];

 

sinh(X)

cosh(X) tanh(X) coth(X)

csch(X) sech(X) – гиперболи-

ческие функции (синус, косинус, тангенс, котангенс, косеканс, се-

канс): sh(X)=(eX-e-X)/2 , ch(X)=(eX+e-X)/2 и др.;

asinh(X) acosh(X) atanh(X) acoth(X) acsch(X) asech(X) – об-

ратные гиперболические функции:

 

 

arsh( X ) = ln( X +

X 2 +1 ), arch( X ) = ln( X + X 2 1 )

arth( X ) =

1

ln

1+X

,

arcth( X ) = 1 ln 1X

,

 

 

 

2 1X

 

 

 

2 1+X

 

arcsch(X)=arsh(1/X), arsech(X)=arch(1/X);

 

erf (Х)- интеграл вероятностей (функция Гаусса, функция оши-

бок)

 

 

 

x

 

 

 

 

 

 

 

2

 

 

 

 

 

erf ( x ) =

 

et2 dt

 

 

 

 

π

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

и родственные функции :

erfc(х)=1-erf(x) (дополнительный интеграл вероятностей) ; erfcx(х)=exp(x2) erfc(x) (нормированный дополнительный инте-

грал вероятностей);

erfinv(х) (аргумент, для которого интеграл вероятностей равен

х);


8

gamma(х) -гамма-функция

 

 

t t x1dt

(при целочислен-

Γ( x ) = e

ных х Г(1+х)=х!)

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

» gamma(5)

ans =

24

 

 

 

» gamma(0) Warning: Divide by zero (деление на нуль).

 

ans =

Inf

( неопределенное значение)

» gamma(0.5)

ans =

1.7725

 

 

» gamma(-0.5) ans =

-3.5449

 

 

» gamma(0.1)

ans =

 

 

9.5135

 

 

и родственные функции :

 

 

 

 

 

x

 

 

 

 

 

1

 

 

 

gammainc(x,a)= P( x,a ) =

 

et t a1dt

(неполная гамма-

Γ( a )

 

 

 

 

 

 

0

 

 

функция);

gammaln(x)=ln Г(х) (логарифмическая гамма-функция);

beta(x,y) - бета-функция B( x, y ) = 1t x1( 1 t )y1dt = Γ( x )Γ( y )

0

Γ( x+y )

и родственные ей неполная и логарифмическая бета-функции;

функции преобразования координат:

из декартовых (X,Y) в полярные (r,ϕ): r=(X2+Y2)1/2, ϕ=Arctg(Y/X)

[ϕ,r]=cart2pol(X,Y);

из декартовой системы (X,Y,Z) в цилиндрическую (r,ϕ,Z) -

[ϕ,r,Z]=cart2pol(X,Y,Z) ;

из декартовой системы в сферическую (r,ϕ,θ) : r=(X2+Y2+Z2)1/2,

ϕ=Arctg(Z/ (X2+Y2)1/2), θ=Arctg(Y,X) - [θ,ϕ,r]=cart2sph(X,Y,Z);

из полярной

и

цилиндрической

в

декартову (pol2cart):

X=r cos(ϕ), Y=r sin(ϕ)

;

из сферической

в

декартову(sph2cart):

Z=r sin(ϕ), X=r cos(ϕ) cos(θ), X=r cos(ϕ) sin (θ)

(эти функции незаме-

нимы при графических отображениях результатов анализа, хотя многое из их графики уже предлагается среди готовых библиотечных средств);

специальные функции (цилиндрические функции Бесселя, Неймана, Ханкеля; функции Эйри, эллиптические функции Якоби и эллиптические интегралы, интегральная показательная функция, присоединенные функции Лежандра и много других функций, полезных при изучении физических процессов),

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


 

9

 

 

 

 

 

 

 

 

 

Если вы имеете намерение познакомиться с поведением какой-

то из функций, поступите по анало-

1

 

 

 

 

 

 

 

 

гии с примитивным примером:

0.8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

» t=-pi:0.01:pi;

% значения аргумента

0.6

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

от -π до π с шагом 0.01

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

(без вывода на экран);

0

 

 

 

 

 

 

 

 

» e=sin(t);

% массива значений

-0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

функции;

-0.4

 

 

 

 

 

 

 

 

 

-0.6

 

 

 

 

 

 

 

 

» plot(t,e)

% построение графика

 

 

 

 

 

 

 

 

-0.8

 

 

 

 

 

 

 

 

 

функции .

-1

-3

-2

-1

0

1

2

3

4

 

-4

3. Режим программирования

Для перехода в режим программирования в окне управления выбираем пункт File и входим в редактор MatLab’а: New (создать новый М-файл) или Open(открыть существующий файл с расширением .m). В дальнейшем может производиться обычный набор текста программы или его корректура и действия в соответствии с меню (сохранение под текущим или другим именем, запуск на исполнение в обычном и отладочном режимах и др.).

Различают два вида М-файлов: М-сценарии и М-функции. М-сценарий – это файл, содержащий последовательность ко-

манд и комментариев (строк, начинающихся символом %) и пользующийся данными из рабочей области. Заголовок его начинается командой script или может отсутствовать.

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

Заголовок М-функции имеет вид:

function [<список выходных переменных>]=

<имя функции> (<список входных переменных>) например, функция вычисления факториала положительного числа и его обратной величины может быть описана файлом fact.m:

function [f, g]=fact(n) % факториал и обратная величина f=prod (1:n);

g=1/f;

Кроме использованных выше операторов присваивания, программирование в MatLab’е допускает и ряд других традиционных для прогрммных сред операторов.

Условный оператор выступает в одной из следующих форм: