Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лістинг 5.3. Файл-функція для вирішення квадратного рівняння

Поиск

function [x1,x2]=quadeq(а,b,c)

D=b^2-4*a*c;

x1=(-b+sqrt(D))/(2*a);

x2=(-b-sqrt(D))/(2*a);

При виклику quadeq з командного рядка використовуйте квадратні дужки для вказівки змінних, в які будуть занесені значення коріння:

>> [r1,r2]=quadeq(1,3,2)

Зауважте, що файл-функцію quadeq можна викликати без вихідних аргументів, або лише із одним вихідним аргументом. В цьому випадку повернеться тільки перший корінь.

Файл-функція може і не мати вхідних або вихідних аргументів, заголовки таких файл-функцій приведені нижче:

function noout(а,b), function [v,u]=noin, function noarg()

Уміння писати власні файл-функції і файл-програми необхідне як при програмуванні в MatLab, так і при рішенні різних задач засобами MatLab (зокрема, пошуку коріння рівнянь, інтеграції, оптимізації). Розберемо тільки один приклад, пов'язаний з побудовою графіка функції на відрізку [0,1]. Запрограмуйте файл-функцію myfun для обчислення f (x). Використовуйте по-елементні операції (див. лістинг 5.4) для того, щоб myfun можна було викликати від вектора значень аргументу і одержати вектор відповідних значень функції.

Лістинг 5.4. Файл-функція myfun

function y=myfun(x);

y=exp(-х).*(sin(x) +0.1*sin(100*pi*x));

Графік f(x) можна одержати двома способами. Перший спосіб полягає в створенні вектора значень аргументу, скажемо з кроком 0.01, заповненні вектор значень функції і виклику plot:

>> x=[0:0.01:1];

>> y=myfun(x);

>> plot(x,y)

В результаті виходить графік, приведений на мал. 5.1, а, який, очевидно, невірний. Дійсно, при обчисленні значень функції на відрізку [0,1] з кроком 0.01 доданок весь час звертався в нуль і plot побудувала графік не f(x), а іншій функції. Непродуманий вибір кроку часто призводить до втрати істотної інформації про поведінку функції. У MatLab є вбудована функція fplot — деякий аналог plot, але з автоматичним підбором кроку при побудові графіка. Першим вхідним аргументом fplot є ім'я файл-функції, а другим — вектор, елементи якого є межі відрізків: fplot('ім'я файл-функції', [а,b]). Побудуйте тепер в новому вікні графік f(x) за допомогою fplot:

>> figure

>> fplot('myfun'[0,1])

Вийшов графік, що точно відображає поведінку функції (рис. Д5.1, б).

 

а) б)

рис. Д 5.1 Графіки функцій

Завдання для самостійної роботи

1. Написати файл-функції і побудувати графіки на заданому відрізку за допомогою plot (з кроком 0.05) і fplot для наступних функцій:

Варіанти

1. 2.

3. 4.

5. 6.

7. 8.

9. 10.

 

2. Написати файл-функцію для вирішення поставленого завдання.

Варіанти

1. Написати файл-функцію, яка по заданому вектору визначає номер його елементу з найбільшим відхиленням від середнього арифметичного всіх елементів вектора.

2. Написати файл-функцію, що повертає суму всіх елементів вектора з непарними індексами.

3. Написати файл-функцію, що обчислює максимальне значення серед діагональних елементів заданої матриці.

4. Написати файл-функцію, що переставляє перший стовпець квадратної матриці з її діагоналлю.

5. Написати файл-функцію, яка підсумовує всі не діагональні елементи заданої матриці.

6. Написати файл-функцію, замінюючи максимальний елемент вектора середнім значенням всіх його елементів.

7. Написати файл-функцію, замінюючи елемент матриці з індексами 1,1 добутком всіх елементів матриці.

8. Написати файл-функцію, яка будує багатокутник (замкнутий) по заданих векторах x і y з координатами вершин.

9. Написати файл-функцію, яка відображає елементи заданого вектора синіми маркерами, а максимальний елемент — червоним і повертає значення і номер максимального елементу.

10.Написати файл-функцію, що переводить час в секундах в години, хвилини і секунди.

Програмування

Мова програмування MatLab достатньо проста, вона містить основний набір конструкцій: оператори галуження і цикли. Простота мови програмування окупається величезною кількістю вбудованих функцій, які дозволяють вирішувати задачі із різних областей.

Цикл for використовується для повторення операторів у разі, коли число повторень заздалегідь відоме. У циклі for використовується лічильник циклу, його початкове значення, крок і кінцеве значення указуються через двокрапку. Блок операторів, розміщений усередині циклу, повинен закінчуватися словом end. Лістинг 6.1 містить файл-програму для виведення графіків функції на відрізку, для значень параметра .



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 316; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.232.9 (0.007 с.)