
- •График сумм и исходной функции 1
- •1)Методом секущих
- •График приближения корня
- •2)Методом Ньютона
- •График приближения корня
- •4)Методом итераций
- •5)Методом половинного деления
- •График последовательного приближения и график приближения корня
- •1)Матричным методом
- •2)Методом Крамера
- •3)Методом Гауса с выбором главного элемента
- •График функции
- •1)Челночным методом
- •2)Методом «Пузырька»
- •3)Методом слияния
- •4)Методом Вставки
- •График зависимости времени от размерности массива
График функции
Вывод : исследовали функцию, Matlab довольно быстро справился с этой задачей что не мало важно в наше время.
Задание№5
Цель:Отсортировать массив чисел
1)Челночным методом
function[x]=chelnok(x)
n=length(x);
for I = 1 : ( n-1 ); % перебираются все элементы от первого
% до предпоследнего
if x( I ) > x( I+1 ) % если условие упорядочения массива
% не выполнено
for J = I : -1 : 1 % откат назад от текущего элемента до первого
if x( J ) > x( J+1 ) % и при необходимости перестановка
buff = x( J );
x( J ) = x( J+1 );
x( J+1 ) = buff;
end;
end;
end;
end;
x=[5 46 85 10 2]
chelnok(x)
ans =2 5 10 46 85
2)Методом «Пузырька»
function[x]=pyzyr(x)
n=length(x);
J = n - 1; % устанавливается начальное значение
% правой "границы" сортировки
while J ~= 0 % пока эта граница не совпала с началом массива
for I = 1 : J % перебираются все элементы с 1-го
% до "границы" сортировки
if z( I ) > z( I-1 ) % если условие упорядочения массива
% не выполнено, то два соседних
buff = z( I ); % меняются местами
z( I ) = z( I-1 );
z( I-1 ) = buff;
end;
end;
J = J - 1; % "граница" сортировки сдвигается влево
end;
end
x=[5 46 85 10 2]
pyzyr(x)
ans =2 5 10 46 85
3)Методом слияния
function [z]= vmeste(x,y)
n=length(x); m=length(y);
I=1;J=1;K=1;
x=chelnok(x);
y=chelnok(y);
while (I<=m) && (J<=n)
if x(I)<=y(J)
z(K)=x(I) ;
I=I+1;
else
z(K)=y(J);
J=J+1;
end;
K=K+1;
end
while I<=m
z(K)=x(I);
I=I+1;
K=K+1;
end
while J<n
z(K)=y(J) ;
J=J+1;
K=K+1;
end;
x=[5 46 85 10 2]
y=[26 88 74 97 12]
>> vmeste(x,y)
ans =2 5 10 12 26 46 74 85 88 97
4)Методом Вставки
function [x] = vybor(z)
n=length(z);
x=z;
for k=2:n
m=k-1;
if x(k)<x(m)
r=x(k);
while(m>0)&&(r<x(m))
x(m+1)=x(m);
m=m-1;
end
x(m+1)=r;
end;
end
vybor(z)
ans =2 5 10 46 85
Время затраченное на сортировку
T1=[];T2=[];T3=[];T4=[]; T5=[];
for n = [ 10000 : 10000 : 50000 ]; % меняется размерность массива данных
time = round( clock ); % определяется текущее время для инициализации
% датчика случайных чисел
rand( 'seed', time(5)*time(6) ); % осуществляется инициализация
% датчика случайных чисел
x = rand( 1, n ); % генерируется массив случайных чисел из диапазона
% [ 0 1 ]
x = round( 100*x ); % случайный массив целых двузначных чисел
%Выборка
tic;
z=vyborka(x);
t1=toc;
T1=[T1 t1];
plot(T1);
hold on
%Вставка
tic;
z=vybor(x);
t2=toc;
T2=[T2 t2];
plot(T2,'-g');
%Пузырек
tic;
z=pyzyr(x);
t3=toc;
T3=[T3 t3];
plot(T3,'-r');
%Челнок
tic;
z=chelnok(x);
t4=toc;
T4=[T4 t4];
plot(T4,'-k');
%sort
tic;
z=sort(x);
t5=toc;
T5=[T5 t5];
plot(T5,'-y');
end