Отчет по лабораторной работе № 1 «Компьютерное моделирование» «Программирование в MatLab»

advertisement
Отчет по лабораторной работе № 1
по дисциплине: «Компьютерное моделирование»
на тему: «Программирование в MatLab»
Выполнил: Батищев Д.С.
Проверила: Голощапова В.А.
Урсол Д.В.
Белгород 2012
1.
Вычислить произведение элементов вектора X  ( x1 , x2 , x3 ,...) ,
не превосходящих среднее арифметическое значение его
элементов.
function res = task1(x)
mm = 0; res = 0;
for i = 1 : 1 : length(x)
mm = (mm + x(1, i)) / i;
end;
mm
for i = 1 : 1 : length(x)
if( x(1, i) < mm )
res = res * x(1, i);
end;
end;
end
Листинг 1. Файл task1.m
Рис. 1. Выполнение 1 задания.
2.
Определить количество положительных элементов вектора Х,
расположенных между его максимальным и минимальным
элементами.
function res = task2(x)
min = 0; minp = 0; max = 0; maxp = 0; res = 0;
for i = 1 : 1 : length(x)
min = x(1, i);
minp = i;
max = x(1, i);
maxp = i;
for j = length(x) - i + 1 : 1 : length(x)
% min elemen
if( x(1, j) < min )
min = x(1, j);
minp = j;
end;
%max element
if( x(1, j) > max )
max = x(1, j);
maxp = j;
end;
end;
end;
bp = 0;
ep = 0;
if( minp
bp =
ep =
else
bp =
ep =
end;
> maxp )
maxp;
minp;
minp;
maxp;
for k = bp + 1 : 1 : ep - 1
if( x(1, k) > 0 )
res = res + 1;
end;
end;
end
Листинг 2. Файл task2.m
Рис. 2. Количество положительных элементов.
3.
Заменить положительные элементы вектора Х суммой всех
его
отрицательных
элементов.
function res = task3(x)
ms = 0; res = 0;
for i = 1 : 1 : length(x)
if( x(1, i) < 0)
ms = ms + x(1, i);
end;
end;
for i = 1 : 1 : length(x)
if( x(1, i) > 0 )
x(1, i) = ms;
end;
end;
res = x;
end
Листинг 3. Файл task3.m
Рис. 3. Замена положительных элементов суммой
отрицательных.
4.
Заполнить квадратную матрицу A размерности n на n (n=5),
каждый элемент a ij которой определяется с помощью вектора
X
следующим
образом:

i  j, i  j

aij   xi  j, i  j

i 2  j 2 , i  j

function res = task4(x)
res = 0; m = (5:5);
for i = 1 : 1 : 5
for j = 1 : 1 : 5
if( i > j )
m(i, j) = (i - j);
elseif( i == j )
m(i, j) = ( x(1, i) + j );
elseif( i < j )
m(i, j) = ( i^2 + j^2 );
end;
end;
end;
res = m;
end
Листинг 4. Файл task4.m
Рис. 4. Замена элементов матрицы по условию.
5.
Подсчитать
число
единиц
в
полученной
матрице
А.
function res = task5(x)
s = size(x);
res = 0;
for i = 1 : 1 : s(1, 1)
for j = 1 : 1 : s(1, 2)
if( x(i, j) == 1 )
res = res + 1;
end;
end;
end;
end
Листинг 5. Файл task5.m
Рис. 5. Количество единиц в матрице.
6.
Просуммировать положительные элементы
лежащие
ниже
главной
function res = task6(x)
s = size(x);
res = 0;
for i = 1 : 1 : s(1, 1)
for j = 1 : 1 : s(1, 2)
if( (i > j) && (x(i, j) > 0) )
res = res + x(i, j);
end;
end;
end;
end
function res = task7(x, s)
матрицы А,
диагонали.
res = 0;
for i = 1 : 1 : s
for j = 1 : 1 : s
res = res + ( (x ^ (i + j)) / ( (i + j) ^ 2 ) );
end;
end;
end
Листинг 6. Файл task6.m
Рис. 6. Сумма элементов ниже главной диагонали.
7.
Вычислить
n
сумму
заданного
x  x1 ,
при
n=5:
x
2
j 1 (i  j )
s( x )  
i 1
для
i j
n
function res = task7(x, s)
res = 0;
for i = 1 : 1 : s
for j = 1 : 1 : s
res = res + ( (x ^ (i + j)) / ( (i + j) ^ 2 ) );
end;
end;
end
Листинг 7. Файл task7.m
Рис. 7. Сумма.
8.
Для полученной матрицы A  (aij ) и заданного x  x1 (n=5)
найти
значение
выражения:
n
n
w( x )  x   aij
i 1 j 1
function res = task8(a, x)
res = 0;
s = size(a);
for i = 1 : 1
tmp = 1;
for j = 1
tmp =
end;
res = res
end;
: s(1,1)
: 1 : s(1,2)
tmp * a(i, j);
+ tmp;
res = x * res;
end
Листинг 8. Файл task8.m
Рис. 8. Значение выражения.
9.
По заданному x  x1 найти максимальное значение n, для
которого следующая сумма не превосходит 100:
n
s ( x )   kx k
k 1
function res = task9(x)
res = 1;
tmp = 1;
while( tmp < 100 )
for k = 1 : 1 : res
tmp = tmp + (k * (x ^ k));
end;
res = res + 1;
end;
end
Листинг 9. Файл task9.m
Рис. 9. Результат выполнения задания 9.
10.
Построить модель поведения некоторого объекта, а именно,

вычислить сумму s( x )  
k 0
xk
с заданной точностью  =0.001.
k!
Суммировать следует пока разность соседних слагаемых
превосходит  . Сравнить результат с точным значением,
ex
построив
графики
и
s(x)
для
x  [ x1 , x2 ] .
function res = task10(x)
n = 1; p = 0; e = 0.01;
res = x(1) / 1;
xf = []; yf = [];
ye = [];
while abs(res - p) > e
p = res;
res = 0;
n = n + 1;
for i = 0 : 1 : n
res = res + ( (x(1) ^ i) / factorial(i) );
end;
xf(1, i) = n;
yf(1, i) = res;
end;
ye = exp(yf)
hold on;
plot(xf, yf, 'g-');
plot(xf, ye, 'r-');
end
Листинг 10. Файл task10.m
Рис. 10. График 10 задания.
11.
i
Xi
Yi
Ri
1
0.4
3
1
Построить модель определения покрытия радиостанциями
некоторой географической точки. Пусть заданы окружности,
координаты их центров содержатся в массивах X и Y, а
радиусы в массиве R. Известны координаты некоторой точки
Т ( x0 , y0 ) . Для всех вариантов: x0  0, y0  0 . Требуется вывести
график, на котором маркером отмечено положение точки,
синим цветом изображены те окружности, внутри которых
лежит точка, а остальные окружности нарисованы красным
цветом.
2
3
3
2
3
-4
4
3
4
-3
3
1
5
5
3
2
6
-7
5
3
7
8
2
1
8
-3
1
2
9
-2
0
3
function task11(x, y, r)
maxc = x(1, 1); maxr = r(1, 1);
for i = 1: 1 : length(x)
maxc = x(1, i);
if( x(1, i) > maxc )
maxc = x(1, i);
end;
if( y(1, i) > maxc )
maxc = y(1, i);
end;
if( r(1, i) > maxr )
maxr = r(1, i);
end;
end;
s = maxc + maxr + 1;
plot(s, s);
for i = 1 : 1 : length(x);
C = [x(i), y(i)];
R = r(i);
T = 0 : pi/180 : 2*pi;
F1 = R * cos(T) + C(1);
F2 = R * sin(T) + C(2);
if( (r(i) ^ 2) > ((x(i) ^ 2) + (y(i) ^ 2)) )
plot(F1, F2, 'b-');
else
plot(F1, F2, 'r-');
grid on;
end;
end;
end
Листинг 11. Файл task11.m
10
1
2
2
Рис. 11. График задания 11.
Download