Численное и символьное решение ОДУ и систем ОДУ
Для того, чтобы получить решение ОДУ в численном виде нужно :
- задать вид уравнения или системы;
- выбрать численный метод и соответствующую ему стандартную функцию Matlab;
- правильно задать параметры выбранной функции.
Для того, чтобы корректно описать вид уравнения или системы применяется несколько способов, самым эффективным из которых является пользовательская подпрограмма-функция.
Схематично подпрограмму-функцию можно представить так:
Заголовок функции |
Блок функции |
Заголовок подпрограммы-функции оформляется следующим образом:
function ИМЯРЕЗ=ИМЯФУНК(СП),
где
ИМЯРЕЗ – имя переменной, куда помещается результат работы функции;
ИМЯФУНК – имя самой подпрограммы-функции, по которому к ней выполняется обращение из вызывающей программы;
СП – список формальных параметров функции. Общий вид списка приведен ниже.
П1, П2, П3,… ПN
где П1, П2, П3, ПN –имена переменных.
Примеры правильной записи заголовка функции:
Функция с одним выходным параметром
function s=summa (a, b, c)
function P=PRIM (x,y)
function k=kluch (d)
Функция с несколькими выходными параметрами
function [s,n]=summa (a, b, c)
Все параметры подпрограммы-функции и переменные, используемые при ее программировании называются локальными, область их действия ограничивается только файлом самой функции.
Глобальные параметры – это те, которые используются в вызывающей программе и под которые распределяется место в памяти компьютера. Область действия глобальных параметров распространяется на основную программу и на все подпрограммы.
Все параметры, указанные в скобках после имени функции, называются входными, они передают свои значения в функцию, но не возвращают назад в вызывающую программу.
Выходной параметр или параметры указываются сразу после слова function, они передают свои значения в вызывающую программу, под них отводится место в памяти компьютера.
Например, при описании
functionP=PRIM (x,y)
P–выходной параметр, x,y- входные параметры.
function [s,n]=summa (a, b, c)
s,n – выходные параметры, a, b, c – входные параметры.
Вызов подпрограммы-функции
Для обращения к подрограмме-функции необходимо указать имя функции и список фактических параметров в любом операторе М-файла или командной области.
Общий вид:
ИМЯ(СП)
Здесь ИМЯ – это имя функции,
СП – список фактических параметров функции.
Например:
disp(Summa(a,b,S));
A=Poisk(D,Y,X);
If sum(a,b)>0 r=r+1;
Параметры, используемые при описании функции, называются формальными. Параметры, используемые при вызове функции, называются фактическими.
Например,
functions=summa (a, b, c)
a, b, c – формальные параметры,
Z=summa(D,Y,X)
D,Y,X– фактические параметры.
В качестве фактических параметров могут использоваться константы, переменные, выражения, например,
Z=summa(5,7,9)
Между формальными и фактическими параметрами существует соответствие по количеству, по типу и по местоположению.
Последовательность решения задачи с использованием подпрограммы- функции такова:
1. Создается М-файл подпрограммы-функции, причем имя файла при записи на диск совпадает с именем самой функции.
2. Создается М-файл основной программы, вызывающей подпрограмму-функцию.
3. Файл основной программы запускается на выполнение.
4. Любой оператор, в котором есть имя функции и фактические параметры, обращается к М-файлу функции.
5. Формальные параметры заменяются на фактические.
6. Вычисляется результат, передается в основную программу через выходной параметр или параметры.
Ниже приведен пример решения задачи с использованием подпрограммы-функции.
Задача 1.
Условие задачи.Составить программу и выполнить расчет значения функции при n- значениях аргументов функции: (x1, y1) , (x2, y2), (x3, y3),…, (xn, yn), используя подпрограмму-функцию. Исходные значения аргументов подобрать самостоятельно, учитывая области определения заданных функций.
Алгоритмический анализ задачи
Для решения задачи необходимо составить подпрограмму-функцию и основную программу. Подпрограмма позволит вычислить значения функции Z(x,y) в точке с заданными координатами x,y. Основная программа будет вызывать подпрограмму n-раз в цикле, получая результирующие значения функции Z.
Ниже приведена таблица наименований переменных для функции Z.
Таблица ??? – Описание параметров функции Z
xt |
Аргумент х |
yt |
Аргумент y |
zt |
Текущее значение функции Z |
z |
Результирующее значение функции Z |
Графическая схема алгоритма решения задачи
Графическая схема алгоритма решения задачи приведена на рисунке .
Текст программы
Подпрограмма-функция
functionz=Z(xt,yt);
zt=sin(sqrt(xt)+yt);
disp('Функция Z=')
disp(zt)
z=zt;
Основная программа
n=input('Задайте количество точек=');
for i=1:n
x(i)=input('Задайтех=');
y(i)=input('Задайте y=');
end
for i=1:n
Z(x(i),y(i));
end
Диалог с пользователем при работе по программе имеет вид:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.