Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 практикум.docx
Скачиваний:
6
Добавлен:
14.09.2019
Размер:
209.94 Кб
Скачать

Московский авиационный институт

(Национальный исследовательский университет)

Отчёт

Лабораторная работа

(практикум 11)

«Геометрические фракталы»

Вариант №25.

Выполнил студент:

Панин Сергей

Группа 7О – 104С

Проверил: Кривилев Александр Владимирович

Цель работы: Приобретение навыков рекурсивного решения задач и знакомство с геометрическими фракталами.

Самостоятельная работа:

  1. Создать m-файл, в котором размещаются две функции. Первичная функция принимает в качестве входного параметра число, которое соответствует максимальной глубине рекурсивных вызовов. Во время выполнения первичной функции создается графическое окно, оформляется координатная плоскость и происходит вызов рекурсивной функции. Подфункция является рекурсивной функцией, которая выполняет построение геометрического фрактала согласно индивидуальному варианту. В том случае, если первичная функция вызывается без входного параметра, то он по умолчанию равен двум. Процедуру построения геометрического фрактала следует выполнять до тех пор, пока не будет достигнута необходимая глубина рекурсивных вызовов или текущая длина линий, из которых формируется необходимая фигура, не будет меньше минимально допустимой длины Lmin. Значение минимально допустимой длины следует хранить в глобальной переменной L_MIN, которая удаляется из памяти во время окончания работы первичной функции.

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

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

function [] = rec_fractal(n)

%REC_FRACTAL Построение фрактала по рекурсивной схеме

% n - глубина фрактального изображения или рекурсии.

if (nargin < 1) | (n < 1), n = 2; end

figure('Color','w');

axes('Color','none',…

'DataAspectRatio',[1 1 1],…

'NextPlot','add',…

'XColor','w','YColor','w')

global L_MIN

L_MIN = 0.1;

picture(0,0,1,1.25,n)

clear('global','L_MIN')

end

function [] = picture(x,y,L,L1,n)

%PICTURE рекурсивная функция

x_c = [x-L/2,x+L/2,x+L/2,x-L/2,x-L/2];

y_c = [y-L/2,y-L/2,y+L/2,y+L/2,y-L/2];

line(x_c,y_c);

global L_MIN

if (n-1>0) & ~(L<L_MIN)

L1 = 1.25 * L; L = L/3.1;

x1 = [x-L1, x, x+L1, x+L1, x+L1, x, x-L1, x-L1];

y1 = [y+L1, y+L1, y+L1, y, y-L1, y-L1, y-L1, y];

for i=1:8

picture(x1(i),y1(i),L,L1,n-1);

end

end

end

Геометрический фрактал второго порядка.

Профиль функции.

This is a static copy of a profile report

Profile Summary Generated 17-Mar-2012 22:36:33 using cpu time.

Function Name

Calls

Total Time

Self Time*

Total Time Plot (dark band = self time)

rec_fractal

1

3.877 s

3.877 s

addpath

1

1.001 s

0.250 s

path

1

0.750 s

0.500 s

general/private/parsedirs

2

0.250 s

0.250 s

closereq

1

0.250 s

0.250 s

workspacefunc

2

0.125 s

0.125 s

general/private/catdirs

1

0 s

0.000 s

pathsep

3

0 s

0.000 s

filesep

2

0 s

0.000 s

datamanager.schema

1

0 s

0.000 s

initprintexporttemplate

1

0 s

0.000 s

rec_fractal>picture

9

0 s

0.000 s

workspacefunc>getWhosInformation

2

0 s

0.000 s

gcbf

3

0 s

0.000 s

Self time is the time spent in a function excluding the time spent in its child functions. Self time also includes overhead resulting from the process of profiling.

This is a static copy of a profile report

rec_fractal (1 call, 3.877 sec) Generated 17-Mar-2012 22:36:35 using cpu time. function in file /home/psdarko/matlab/Var 25/pw11/rec_fractal.m Copy to new window for comparing multiple runs

Parents (calling functions) No parent

Lines where the most time was spent

Line Number

Code

Calls

Total Time

% Time

Time Plot

6

figure('Color','w');

1

3.752 s

96.8%

8

global L_MIN

1

0.125 s

3.2%

13

end

1

0 s

0%

11

clear('global','L_MIN')

1

0 s

0%

10

picture(0,0,1,1.25,n)

1

0 s

0%

All other lines

 

 

0 s

0%

Totals

 

 

3.877 s

100%

 

Children (called functions)

Function Name

Function Type

Calls

Total Time

% Time

Time Plot

rec_fractal>picture

subfunction

1

0 s

0%

initprintexporttemplate

function

1

0 s

0%

datamanager.schema

function

1

0 s

0%

Self time (built-ins, overhead, etc.)

 

 

3.877 s

100.0%

Totals

 

 

3.877 s

100%

 

Code Analyzer results

Line number

Message

5

Use || instead of | as the OR operator in (scalar) conditional statements.

Coverage results [ Show coverage for parent directory ]

Total lines in function

13

Non-code lines (comments, blank lines)

5

Code lines (lines that can run)

8

Code lines that did run

8

Code lines that did not run

0

Coverage (did run/can run)

100.00 %

Function listing

time calls line 1 function [] = rec_fractal(n) 2 %REC_FRACTAL Построение фрактала по рекурсивной схеме 3 % n - глубина фрактального изображения или рекурсии. 4 1 5 if (nargin < 1) | (n < 1), n = 2; end 3.75 1 6 figure('Color','w'); 1 7 axes('Color','none','DataAspectRatio',[1 1 1],'NextPlot','add','XColor','w','YColor','w') 0.13 1 8 global L_MIN 1 9 L_MIN = 0.1; 1 10 picture(0,0,1,1.25,n) 1 11 clear('global','L_MIN') 12 1 13 end

Other subfunctions in this file are not included in this listing.

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