Занятие 7. Статистика в GNU Octave

реклама
т е 7. т т т к
1.
ед ее
е е до е тел
2.
п еделе
3.
то
е е
лу
4. Ц кл for while, ко т ук
5. о д
е m- к пто m- у к
GNU Octave
те
л
о к
ел
if…then…else
ед ее
Фу к
В
о
mean
mean(x)
mean(x,1)
mean(x,2)
до е
Оп
тел
те
л
е
ед ее
ед е
ед е
т
д т
f=0–
т д т
т д т
е
е
е
е екто x
тол о
т ок т
ое откло
е е .д
ое откло
ое откло
std
std(x)
std(x,f)
std(x,f,1)
std(x,f,2)
tinv
tinv(p,f)
median
С . mean
ёт ед
numel
numel(x)
Ч ло ле е то
sum
С . mean
Ле о то о
к
т
x
x
е
е екто x
п., f = 1 – е .д п.
е е тол о
т
x
е е т ок т
x
т л t-
екто
п еделе
л
т
ёт у
>> x = [66.30 66.30 66.26 66.37 66.30];
>> mean(x)
ans = 66.306
>> std(x)
ans = 0.039749
>> std(x)*tinv(0.975,numel(x)-1)/sqrt(numel(x))
ans = 0.049355
x
Фу к
п еделе
о
л
т
де т
Ф
ое
t
е
п еделе
� �
к
� �
т л
Ле о то о
к
т л
normpdf(x,mu,s)
normcdf(x,mu,s) norminv(p,mu,s)
tpdf(x,f)
tcdf(x,f)
tinv(p,f)
о
(� )
chi2pdf(x,f)
chi2cdf(x,f)
chi2inv(p,f)
е
н
fpdf(x,f1,f2)
fcdf(x,f1,f2)
finv(p,f1,f2)
Pdf – probability density function у к
плот о т е о т о т
Cdf – cumulative distribution function
те л
у к
п еделе
Inv – inverse function о
т
у к
>>
>>
>>
>>
>>
>>
>>
>>
>>
x = 0:0.1:10;
y1 = fpdf(x,6,5);
y2 = fcdf(x,6,5);
plot(x,y1,'k-',LineWidth',5);
hold on;
plot(x,y1,'k-',LineWidth',5);
hold off;
legend('p(x)','F(x)');
set(gca,'FontSize',20);
лу
Фу к
В
rand
rand(m,n)
е
о
randn
randn(m,n)
hist
hist(x,n)
[nn,xx]=hist(x,n)
л
то
Оп
т
лу
mxn
т
лу
mxn о
л о
п еделе
ел � = ; � = )
к
>> x = randn(1,1000);
>> hist(x,8, ’FaceColor’,
’yellow’, EdgeColor, ’red’,
’LineWidth’, 5);
>> [nn,xx] = hist(x,8);
>> hold on;
>> plot(0,xx,’bo’);
>> hold off;
е
то
ел
к
то
о , nn –
о е
те
о
о
п еделе
л [ ; ]
л (x – д
е, n –
тот , xx – е т к
ло
о
к
пт
у к
те кт
е
– е ед
т е
GNU Octave – пол о е
кп о
о о о т
т
од е тек т п о
В е
е
л
m- к
од
пт
тек т
еет
од
л
од
у е то . о д ёт пе е е
е
ло л о
о е п о т
т е
scriptex.m:
% Comment with help
x = magic(3);
disp(’Hello’);
>> scriptex
Hello
>> disp(x)
8
1
6
3
5
7
4
9
2
– тек то
о
о
о
,д
л 2
е
е
m- у
до
е .m
к
т
од е
од е
у е т .
о д ёт пе е е
е
лок л о
о е п о т
т е
funcex.m
% Comment with help
function [s,p] = sumprod(a,b)
s = a+b;
p = a*b;
end
>> [s,p]=sumprod(2,3)
s = 5
p = 6
Фу к
Фу к
sprintf
sprintf: о
т
од
fprintf: о
т
од
fprintf
т оку
str = sprintf(fmt, arg1, arg2, ….);
Фу к
к
л
fprintf(fmt, arg1, arg2, ….); % На э а
fprintf(fd, fmt, arg1, arg2,…); % В а
fd – де к пто
л
fmt – т ок оп
е
о
т
од . о ледо тел
е
%,
е
т
од
у е т
Фо
т
е
е
Фо
т
е
%d
Целое
%f
%.10d
Целое, допол е ое до
ко ул
ле
%.3f
%10d
Целое, допол е
ко п о ел
%10.3f
ое до
ле
%s
т ок
%e
\n
е е од т ок
%15.3e
. доку е т
по у к
sprintf, fprintf
л
о т ,
е
е т
д о
е т
по ле
д о
п то
3
к
о е, о допол е
до
ко п о ел
ле
Эк по е
л
п
о е, о 3
к
по ле
п то
допол е
до 5
ко п о ел
ле
printf
ке C
Фу к
пол о
е о к л
т ок
>> fprintf('%d\n\n', 10);
10
>> fprintf('%10.3f, %5.1f\n',
2.1, 3.5);
2.100,
3.5
>> fprintf('%15.3e\n', 123456);
1.235e+05
>> fprintf('%s %e %f %d\n',
'ab', 1, 2, 3, 4);
ab 1.000000e+00 2.000000 3
sprintf
fprintf
пол о
е
т
>> fprintf('%d\n\n', 10);
10
>> sprintf('<%.3f>', rand(1,4));
ans=<0.416><0.568><0.225><0.467>
>> sprintf('%d',[1 2 3;4 5 6]);
ans = 1 4 2 5 3 6
>> fprintf('%d %d %d\n',
[1 2 3;4 5 6]')
1 2 3
4 5 6
>> sprintf('%.3e', 1.3)
ans = 1.300e+00
>> fprintf('%X %o', 255, 63)
FF 77
о
т
док
е
– «Фо т
по тол
ле е то
о к »
Ц кл for
Ц кл for
Код:
for i=1:10
fprintf('%d ', i);
end
е ул т т:
1 2 3 4 5 6 7 8 9 10
Код:
for i=[1 3 10 15]
fprintf('%d ', i);
end
е ул т т:
1 3 5 10
Код:
for i=[1 2 3; 4 5 6]
fprintf('%d ',i)
end
е ул т т:
1 4 2 5 3 6
while
Ц кл while
Код:
x = 1;
while x < 32
fprintf('%d ', x);
x = x * 2;
end
fprintf('\n');
е ул т т:
1 2 4 8 16
опе
е
те кл
т
п пе о о о
«Think vectorized»
е
о т
Ко т ук
Опе
Ко т ук
if
..
elseif
..
else
..
end
Вет
о
_1
а
ы..
_2
а
ы..
_n
а
ы..
else
тел
if…then…elseif…else
~
то
е
«
»
о
==
elseif е
л
т
е
>
ол
е
<
е
>=
ол
<=
е
е л
~=
е
о
&&
к л
ое « »
||
к л
ое « Л »
е
е л
о
о
е
if x^2+y^2<1
disp(‘В
а’);
elseif x^2+y^2==1
disp(‘На
’);
else
disp(‘В
а’);
end
е пут
те ==
=
>> a = 0;
>> if a = 1;disp('KU-KU');end;
KU-KU
Ло
от
под
е к е
т
В
>> a = magic(3)
a =
8
1
6
3
5
7
4
9
2
>>
>>
>>
>>
>>
>>
>> ii = a < 6
ii =
0
1
0
1
1
0
1
0
1
>> a(ii) = NaN
a =
8
NaN
6
NaN
NaN
7
NaN
9
NaN
т
о к
е
т
xv = -1:0.05:1;
[X,Y] = meshgrid(xv,xv);
ii = X.^2 + Y.^2 <= 1;
plot(X(ii),Y(ii),'bo');
set(gca,'FontSize',24);
print(gcf,'a','-dpng','-r75');
Ло
Опе
е к е
то
е
«
~
т
: екто
е
»
&
т
ое « »
|
т
ое « Л »
Опе
Фу к
то
дл
е
е
к л
– те е,
о
е
any(x,1)
екто
тол
ое « Л » по
т
any(x,2)
екто
т ок
ое « Л » по
т
all(x,1)
екто
т
ое « » по тол
all(x,2)
екто
т
ое « » по т ок
е ло
е к е опе
>> a = [1 1 1; 1 1 0; 0 0 0];
>> a
1
1
1
1
1
0
0
0
0
>> any(a,1)
1
1
1
>> any(a,2)
1
1
0
>> all(a,1)
0
0
0
>> all(a,2)
1
0
0
>>
>>
>>
>>
>>
xv = -1.5:0.05:1.5;
[X,Y] = meshgrid(xv,xv);
r2 = X.^2 + Y.^2;
ii = 0.5 <= r2 & r2 <= 1;
plot(X(ii),Y(ii),'bo');
етод
е
к д
то : од о е
+ =
…
⇔ … …
�
�+ = �
.к. т
X – е к д т , то
о Octave/MATэAB е т ту
те у у
>> x = (0:0.1:5)’;
>> y = 2*x + 5 + randn(size(x));
>> X = [x ones(size(x))];
>> beta = X\y
beta =
2.0653
4.7701
>> close all;
>> plot(x,в,’bo’,’LineWidth’,2);
>> hold on;
>> yfunc = @(x)beta(1)*x+beta(2);
>> plot(x,yfunc(x),’k-’,’LineWidth’,2);
>> hold off;
>> print(gcf,’graph’,’-dpng’,’-r75’);
=
п
…
�
⇔ �� =
лу
т � = �−
ел
е
,е л
п т b=X\y
оле
Ко
д
е
cd
я_ а а
а
е ко
д
е
е
т теку
к т ло
clc
О
clear all
то т
е пе е е
е
пол о тел к т по д
т.п.
к
close all
dir (
ls)
edit filename.m
figure
help funcname
hold on
hold off
pause
т т ко ол
т
е т
е ок
д т
оде
од т
од т
л filename.m л
т
pwd
т теку
whos
е т
од
ку по у к
о
о
д т
оде
ло
ое теку е о к т ло
о ое ок о дл
п
т укту
MйX-
к
От ед кт о т
от ут т ует
о д т
дд у
,
у е
к
к
ко
funcname
у е т у ее ок о
о ое ок о т ое к оет
йNTйR пол о теле
к т ло
у е т у
о д т ео е л о
е пе е е
е
Скачать