Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadania_na_2_semestr / Методическое пособие.pdf
Скачиваний:
377
Добавлен:
02.04.2015
Размер:
1.62 Mб
Скачать

% сохранить результат в выходную переменную res = a;

end

Пример использования этой функции:

>>myGCD(78, 66) ans =

6

>>myGCD(32, 48.5)

Error using myGCD (line 6)

Входные аргументы должны быть целыми

Задания на лабораторную работу

В соответствии с номером варианта выбрать функцию и реализовать функцию в MATLAB. Например:

y (x )={x1 3 x2 dx , 0x<1

1, 2x <0

1+ xn , 1x2

n=0 n!

Для вычисления интеграла интеграла воспользоваться методом прямоугольников. Шаг интегрирования будет задан в варианте. Суммирование ряда выполнять пока модуль очередного члена не будет меньше заранее заданного числа ε , заданного в варианте. Так же необходимо будет проверять, что входной аргумент x , лежит в допустимом диапазоне

После написания функции, необходимо составить небольшой тестовый скрипт, демонстрирующий работу функции.

Пример выполнения лабораторной работы Дана функция:

{1, 2x <0

x

y (x )= 1 3 x2 dx , 0x<1

1+ xn , 1x2

n=0 n!

35

Реализация данной функции в MATLAB (файл exmpaleLab3.m):

function [ y ] = exampleLab3( x )

%пример функции для третьей лабораторной работы

%проверка, что x лежит в допустимом диапазоне if x < -2 || x > 2

error('Аргумент функции должен быть в диапазоне [-2; 2]');

end

%шаг интегрирования

dx = 0.0001;

%"точность" вычисления ряда eps = 0.001;

%вычисление функции

if x < 0

% x лежит на интервале [-2; 0) y = 1;

elseif x < 1

%x лежит на интервале [0; 1)

%производим численное интегрирование y = 0;

for z = -1 : dx : x y = y + 3 * z^2;

end

y = y * dx;

else

%x лежит на интервале [1; 2]

%производим суммирование ряда y = 1;

%инициализируем член ряда значением большим eps x_i = 2 * eps;

%номер члена ряда i = 0;

%вспомогательная переменная для вычисления факториала factI = 1;

%вспомогательная переменная для вычисления степеней x xPow = 1;

%производим суммирование

%функция abs берет модуль числа

while abs(x_i) >= eps

% вычисляем значение члена ряда x_i = xPow / factI;

%производим суммирование y = y + x_i;

%обновляем вспомогательные переменные для следующего

члена

i = i + 1;

factI = factI * i;

36