Вычисление функций от матриц
ЛЕКЦИЯ 4
Элементы программирования в среде MATLAB
Типы М-файлов.
Как уже отмечалось выше, М-файлы бывают двух типов. Вычисления в среде MATLAB возможны в текстовых файлах с расширением .m :
1. файл-программы (script m-files) – последовательность команд, оформленная в виде файла с именем и расширением .m .
2. файл-функции (function m-files) – файл, в котором описываются функции, определяемые пользователем. Файл-функции могут принимать исходные данные в виде набора входных параметров и выдавать результаты. Файл-функция всегда должна состоять из следующих частей:
· заголовок функции: включает объявление function, уникальное имя функции, список входных и выходных параметров;
· тело функции: состоит из инструкций MATLAB.
Для создания файл-функции вызывается редактор М-файлов. После ввода текст файл-функции сохраняют в текущем рабочем каталоге при этом в соответствующем окне автоматически появляются имя и тип файл-функции (содержимое этих полей менять нельзя). Файл-функция может использоваться как в командном режиме, так и вызываться из других файл-программ и файл-функций. При ее вызове указываются все входные и выходные параметры.
Структура функции с несколькими выходными параметрами имеет вид:
function[y1,y2,…,yn]=имя_функции(список входных параметров)
% комментарий
y1 = выражение
y2 = выражение
...
yn = выражение
Вызов такой функции выполняется следующим образом:
[y1,y2,…,yn]=имя_функции(список входных параметров)
Иногда при написании файл-функций требуется создание так называемых подфункций, в которых выполняются промежуточные вычисления. Они записываются в теле основных функций и имеют аналогичный им синтаксис. Эти подфункции являются локальными или могут выполняться только в пределах основной файл-функции. Файл-функция может включать одну или несколько подфункций.
Пример 1.5. Задача об изгибе консоли (задача Коши)
Определить прогиб консоли (решить задачу Коши) методом Эйлера.
Варианты задания.
– изгибающие моменты в балке;
– жесткость балки; – числовой параметр,
– длина балки; – номер группы, – номер студента по журналу.
Принять для расчета на ЭВМ число точек , для ручного счета – .
Пример соответствующей M-функции (ниже задано , ):
function consol dl=input('введите dl='); N=input('введите N='); x0=input('введите x0='); y0=input('введите y0='); z0=input('введите z0='); dl,N,x0,y0,z0 h=dl/N G=3;S=12; c=0.02*(G+S); disp(' x y z'); d=zeros(N+1,3); d1=zeros(N+1,1); d2=zeros(N+1,1); d3=zeros(N+1,1); for i=1:N+1 d1(i)=x0; d2(i)=y0; d3(i)=z0; z=z0+h*f(x0,z0,c); y=y0+h*(z0+z)/2; x0=x0+h; z0=z; y0=y; end d=[d1 d2 d3]; disp(d); function y=f(x,z,c) y=c*M(x,c)*sqrt((1+z^2)^3); function u=M(x,c) u=1/sqrt((1+(c*x)^2)^3); |
Результаты расчета:
введите dl 1
введите N 10
введите x0 0
введите y0 0
введите z0 0
dl =
N =
x0 =
y0 =
z0 =
h =
0.1000
x y z
0 0 0
0.1000 0.0015 0.0300
0.2000 0.0060 0.0600
0.3000 0.0135 0.0900
0.4000 0.0240 0.1200
0.5000 0.0375 0.1500
0.6000 0.0540 0.1800
0.7000 0.0735 0.2100
0.8000 0.0960 0.2400
0.9000 0.1215 0.2700
1.0000 0.1500 0.3000
Вычисление функций от матриц