Численное и символьное решение ОДУ и систем ОДУ. Численный метод и соответствующую ему стандартную функцию Matlab

Страницы работы

Фрагмент текста работы

Численное и символьное решение ОДУ и систем ОДУ

Для того, чтобы получить решение ОДУ в численном виде нужно :

- задать вид уравнения или системы;

- выбрать численный метод и соответствующую ему стандартную функцию 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

Диалог с пользователем при работе по программе имеет вид:

Похожие материалы

Информация о работе