Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab3-4_Prg.doc
Скачиваний:
4
Добавлен:
17.08.2019
Размер:
615.94 Кб
Скачать

4. Управляющие структуры в matlab

Подготовка к работе

По указанной литературе изучить:

  • средства и особенности программирования MATLAB;

  • управляющие структуры.

Контрольные вопросы

  1. Дать понятие регулярного циклического процесса.

  2. Приведите формат оператора цикла с заданным числом повторений.

  3. Как организовать регулярные циклы с шагом отличным от единицы в matlab?

  4. Дать понятие итерационного циклического процесса.

  5. Приведите формат оператора цикла с неизвестным числом повторений, и пояснить, как с его помощью реализуется циклический процесс?

  6. Какую алгоритмическую структуру реализует оператор while? Условие выхода из цикла?

  7. Как программно ввести вектор значений?

Задание и порядок выполнения работы

Задача 3. Создать М-файл для расчета функции, заданной в таблице 4. Вывести результаты вычисления в виде таблицы.

Таблица 4. Варианты заданий

N

Задание 1

Задание 2

a = 2.8; b = 0.7; x = 5.1

Функция

Е

х

1

0,005

1,2

2

0,002

0,9

3

0,003

1,4

4

0,004

0,7

5

0,001

0,6

6

0,005

0,8

7

0,004

1,5

8

0,002

1,2

9

0,003

0,9

10

0,001

1,4

11

0,005

0,9

12

0,004

0,7

Методические указания по выполнению задания 3

Написать программу вычисляющую сумму членов ряда:

Функцию можно рассчитать как y = sin(x*1)+ sin(x*2)+ sin(x*3)+ sin(x*4)+ ….+sin(x*10)

y0 = 0

y1 = y0 + sin(x*1)

y2 = y1 + sin(x*2)

y3 = y2 + sin(x*3)

. . . . . . . . . . . .

y10 = y9 + sin(x*10)

Ниже на рис. 4 приведёна блок-схема, программа для решения задачи с помощью М-файла и результаты, подтверждающие решение задачи.

>> N=10;

>> Ysum;

Y =

Columns 1 through 6

0 0.4794 1.3209 2.3184 3.2277 3.8262

Columns 7 through 11

Рис. 4. Блок-схема Задания 1 3

3.9673 3.6165 2.8597 1.8822 0.9232

Примечание. В случае накопления произведения членов ряда, например

функцию можно рассчитать как p = cos(x*1)* cos(x*2)* cos(x*3)* cos(x*4)* ….* cos (x*10)

p0 = 1

p1 = p0 * cos (x*1)

p2 = p1 * cos (x*2)

p3 = p2 * cos (x*3)

. . . . . . . . . . . .

p10 = p9 * cos (x*10)

Блок-схема, реализующая вычислительный процесс, будет аналогична той, что представлена на рис. 4. Отличия в блоках 2 (p=1) и 4 (оператор “+” заменяется оператором “*”).

Задача 2. Рассчитать функцию, представленную в табл. 4, разложив ее в ряд с заданной точностью Е. Определить минимально необходимое число членов ряда, сами члены ряда и их сумму, обеспечивающие представление функции с заданной точностью. Проверить результаты решения с помощью калькулятора.

Методические указания по выполнению задания 4

Представить функцию в виде ряда с точностью 0,001 при х=0,8.

Как известно из математики функцию y(x) можно разложить в ряд и рассчитать путем сложения первых нескольких n членом ряда. Например, y= a0 + a1 + a2 + a3 + a4 + …+ an + . . .

Функция e-x может быть разложена в ряд Тейлора. Ряд сходящийся и рассчитывается путем сложения n членов ряда. Для организации циклических вычислений необходимо рассчитывать члены ряда, сравнивать их значения с заданной точностью |an|<E и при выполнении условия сравнения производить их суммирование.

Для написания программы сначала в символьном виде представим n-й член ряда заданной функции:

>> syms x; % символьное представление данных

>> n=0:9; % ранжированная переменная n для первых 10 членов ряда

>> a=(-1).^n.*x.^n./factorial(n) % n-й член ряда заданный формулой за знаком суммы

a =

[1, -x, x^2/2, -x^3/6, x^4/24, -x^5/120, x^6/720, -x^7/5040, x^8/40320, -x^9/362880]

a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 . . .

Как видно, начальными значениями для расчета функции e-x являются: n=0, a0=1, s0= a0.

На рис. 5 приведёна блок-схема, программа для решения задачи с помощью М-файла и результаты, подтверждающие решение задачи.

>> % исходные данные

>> x=0.8;

>> E=0.001;

> > Yiter

Y =

1 1 0

Y =

-0.8000 0.2000 1.0000

Y =

0.3200 0.5200 2.0000

Y =

-0.0853 0.4347 3.0000

Y =

0.0171 0.4517 4.0000

Y =

-0.0027 0.4490 5.0000

>> % Проверка правильности решения задачи

>> exp(-x)

ans =

0.4493

>> 0.4493-0.4490

ans =

3.0000e-004

>> % Погрешность вычисления = 0,0003 << 0,001

Как видно из полученного результата, что для представления функции e-x c точностью вычисления E=0.001 при x=0.8 достаточно сложить первые 6 членов ряда (a0, a1…a5).

Измените переменную x и точность вычисления Е. Проанализируйте результат представления заданной функции. Сделайте выводы, как погрешность вычисления влияет на результат.

20

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