Занятия по MATLAB в компьютерном классе
MATLAB – матричная лаборатория – наиболее развитая система программирования для научно-технических расчетов. Переменные и элементы xy-графики. Простые примеры, иллюстрирующие эффективность MATLAB. Системы линейных алгебраических уравнений и полиномы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 26.01.2009 |
Размер файла | 47,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
При x0=4 предел итераций равен 3, а v(k) успевают подойти к -1 (у v(6) точность уже потеряна). Таким образом, в зависимости от начального приближения x0=xt итерации могут сходиться к обоим решениям задачи.
Так как теперь преобразование y=F(x) уже не является дробно-линейным, рассмотрим трансформацию комплексной прямоугольной области в процессе итераций. Создадим такую область xt из 412=1681 комплексных точек и проитерируем ее (при этом в командном окне будет много сообщений о делении на нуль):
5;x=-10:.5:10; [X,Y]=meshgrid(x); xt=X+i*Y; n=100; for k=1:n,xt=eval(TF);end, plot(xt,'.')
На графике будут оба решения задачи и некоторое множество точек на прямой Re(z)=2.5. Сделаем только 10 итераций и вставим выдачу графика на каждой итерации:
6;x=-10:.5:10; [X,Y]=meshgrid(x); xt=X+i*Y;n=10; for k=1:n,xt=eval(TF); plot(xt,'.'), pause(0), end
Конечный результат тот же, что и при 100 итерациях, но видна динамика его формирования.
Полуплоскость Re(z)<2.5 стягивается итерациями в точку x1=2, а полуплоскость Re(z)>2.5 - в точку x2=3: прямая Re(z)=2.5 переходит сама в себя. Точка x1=2 имеет красный цвет потому, что в нее перешли первые 25 столбцов матрицы xt, а остаток rem(25,7)=4, но 4-й цвет - красный. Далее идут зеленые точки (26-й столбец) и синяя x2=3, поскольку rem(41,7)=6 и 6-й цвет - синий. Но всегда лучше проверить такие выводы численно: найдем
7;z=xt(:); [sum(abs(z-2)<.1), sum(abs(z-3)<.1), sum(abs(real(z)-2.5)<.1)]
(=1025=41*25), (=615=41*15), (=38<41 на 3).
Так как потерь в матрице-таблице xt MATLAB не допускает, выясним, во что перешли эти 3 точки - в inf или NaN:
8;z=xt(:,26); [sum(isinf(z)), sum(isnan(z))]
=0, =3 .
Индексы этих трех точек из 26-го столбца находятся командой
9;find(isnan(z))'
=20 21 22 ,
и это есть точки
z1=2.5-0.5i, z2=2.5, z3=2.5+0.5i.
Теперь разберемся, как преобразуется итерациями F прямая Re(z)=2.5. Так как прямая Re(z)=2.5 переходит в себя, ее можно параметризовать с помощью переменной y=Im(z), и пусть yk=Im(Fk(Re(z)=2.5), k=1, 2,... , т.е. после k итераций y переходит в yk(y). Ясно, что на k-й итерации в inf перейдут только те точки из всего множества yk-1, которые равны нулю. Поскольку -inf<y<inf, на 1-й итерации это случится только с одной точкой z1=2.5 (для нее y=0). Выдадим на график y1 после 1-й итерации:
10;xt=2.5+(-10:.1:10)'*i; y=imag(xt); n=1; for k=1:n,xt=eval(TF);end, plot(y,imag(xt)), grid
и увидим, что функция y1(y) пересекает ось абсцисс только два раза (при этом y1 дважды непрерывно пробегает от -inf до inf), так что на 2-й итерации в inf перейдут только две точки (это уже известные нам z1=2.5-0.5i, и z3=2.5+0.5i). Выполним строку 10 с n=2 и снимем с графика строкой
11;q=ginput;q(:,1)'
четыре точки пересечения кривой y2(y) с осью абсцисс: приближенно это -1.2079 -0.2056 0.2055 1.2079, тогда как для y1(y) это были значения -0.5 и 0.5. Каждая переходящая в inf на k-й итерации точка порождает слева и справа от себя две такие точки, которые перейдут в inf на (k+1)-й итерации. Поэтому с ростом k точки yk(y)=0, с одной стороны, уходят в обе стороны от нуля, а с другой - все чаще появляются в тех местах, где они однажды уже появились. Всего на k-й итерации в inf перейдет 2k-1 точек. В действительности с ростом k они всюду плотно заполняют прямую Re(z)=2.5, а между ними yk(y) непрерывно пробегает все значения от -inf до inf. Чтобы быть в этом уверенными, выполним последнюю программу
12;hy=1.0033e-4; xt=2.5+(-1:hy:1)'*i; w=2:length(xt); n=100; for k=1:n,xt=eval(TF); end
13;pzn=sum(sign(xt(w-1)).*sign(xt(w))<0)
которая зафиксирует 674 перемены знака (pzn) у функции y100(y) для -1y1 с hy=1.0033e-4 (из-за недостаточной малости hy далеко не все они учтены). Для -10y-8 с hy=1.0033e-4 pzn=675. Для симметричного относительно точки y=0 отрезка 8y10 с тем же hy получим pzn=702. Ошибки при последовательном вычислении Fk(z) на прямой Re(z)=2.5 будут ничтожными, так что значения yk(y) вычисляются с высокой точностью, но от шага hy число найденных перемен знака в yk(y), конечно, зависит: при k=100 число всех нулей функции yk(y) равно 2100-1=6.3383e29.
Сделаем краткое резюме относительно неподвижной точки inf преобразования F. Ее следует рассматривать как неустойчивую, поскольку любая ее окрестность с разрезом Re(z)=2.5 в комплексной плоскости с ростом k "уходит" от нее, а из этого разреза все больше точек попадает в нее, и эти ее дискретные прообразы все плотнее (в пределе всюду плотно) заполняют этот разрез, но все их множество, поскольку оно счетно, имеет меру нуль. Отсюда следует, что на прямой Re(z)=2.5 почти всюду не существует теоретического предела итераций. Из-за ошибок округления, хотя они и малы, прообразы inf почти никогда не попадают в inf при вычислениях и потому ведут себя так же (т.е. хаотически), как и не прообразы.
Заметим теперь, что порядок действий в F можно переставить:
F(x)=x/2+1.25+0.25/(2x-5) и F(x)=(x2-6)/(2x-5)
- это две другие математически эквивалентные записи F. Выполним строку 14;TF='xt/2+1.25+.25./(2*xt-5)';
а затем строки 5 и 7 и получим тот же результат, что и выше. Но строка
15;TF='(xt.^2-6)./(2*xt-5)'; и строки 5, 8 дадут только устойчивые неподвижные точки преобразования F и, как и раньше, три точки NaN, так что с такой TF мы не увидели бы рассмотренной выше картины. Выполним строку 6 с n=100 и увидим, как все происходит до конца. Пример 3 показывает, что, пользуясь довольно простыми командами MATLAB'а и руководствуясь здравым смыслом, можно проанализировать достаточно тонкие математические детали задачи.
Тема 8. Системы линейных алгебраических уравнений
В MATLAB'e имеется несколько команд для решения таких задач. Рассмотрим здесь наиболее употребительную из них - оператор \ (обратный слэш или деление слева). Для чисел a\b=a-1b в отличие от того, что a/b=ab-1. Для невырожденной квадратной матрицы A и вектора-столбца f вектор-стобец u=A\f есть решение системы линейных уравнений Au=f, т.е. в записи по аналогии с числами u=A-1f, но матрица A-1 в действительности не вычисляется, а система Au=f решается методом исключения Гаусса (это значительно дешевле), с которым каждый из нас как-то знаком еще со школы. Правая часть f может быть и матрицей, и тогда каждый столбец матрицы u=A\f есть решение системы для соответствующего столбца из f, т.е. командой A\f можно сразу решить много систем, и поступать так всегда выгодно, ибо тогда матрица A будет разлагаться на множители по методу Гаусса только один раз. Если матрица A не квадратная, вектор u=A\f есть решение системы Au=f в смысле метода наименьших квадратов, но мы не будем здесь разбирать этот вариант оператора \ , поскольку не должны сколько-нибудь заметно вдаваться в детали численных методов. Таким образом, оператор \ - одна из самых мощных команд системы. А поскольку решение систем Au=f с квадратными матрицами - наиболее часто встречающаяся в вычислительной практике задача, необходимо иметь представление хотя бы об одном из методов ее реализации.
1.Решим и проанализируем на точность систему Au=f, выполнив следующую строку:
1;x=1:.1:5; m=length(x); A=toeplitz(exp(x)); ut=sin(x)'; f=A*ut; u=A\f;
Здесь задается вектор-строка x=1:.1:5 из 41 элемента, затем по вектору exp(x) командой toeplitz вычисляется квадратная матрица A размеров 41*41, далее в виде вектора-столбца задается точное решение ut, по нему строится правая часть f и, наконец, находится численное решение системы Au=f. Выясним вид A, построив графики
2;mesh(A) plot(A(1,:)) plot(A(20,:)) plot(A(41,:))
Теперь выполним команды
3;plot(ut) plot(f) plot([ut,u])
и увидим, что f сильно отличается от u, а точное и численное решения графически совпадают (изображающая u фиолетовая линия накрыла желтую линию ut). Иногда нужно сравнивать сильно разномасштабные кривые (у нас это u и f). Для такого сравнения следует провести нормировку каждой из них на свой абсолютный максимум. В нашем случае график
4;plot([u/max(abs(u)),f/max(abs(f))])
позволяет изобразить динамику изменения кривых u и f относительно друг друга.
2.Команда det вычисляет определитель. Найдем
1;max(abs(u-ut)) (=9.7167e-13) det(A) (=4.1058e-9)
откуда видно, что u и ut совпадают примерно в 12 знаках, хотя определитель det(A) системы на первый взгляд очень мал. Тем не менее попробуем решить нашу систему по правилу Крамера, обозначив такое решение через uc:
2;d=det(A); uc=zeros(m,1); for k=1:m,uc(k)=det([A(:,1:k-1),f,A(:,k+1:m)])/d; end, plot([ut,uc])
Здесь при k=1 A(:,1:k-1)=[], а при k=m A(:,k+1:m), поскольку 1:0=[] и m+1:m=[], так что все матрицы Ck=[A(:,1:k-1),f,A(:,k+1:m)], k=1:m, сформированы правильно. Из графика видно, что так найденное uc снова совпадает с точным решением ut. Теперь
3;max(abs(uc-ut)) (=9.6934e-13)
т.е.погрешность практически не изменилась. Длительное время считали, что при малых d систему решать численно нельзя.
3.В действительности трудности численного решения системы связаны с возможной близостью к нулю собственных значений матрицы A, которые определяются как все решения 1, ..., m характеристического уравнения det(A-E)=0, где E=eye(m) - единичная (с нулями вне главной диагонали) матрица порядка m. За последние 10 лет были созданы достаточно хорошие программы для нахождения собственных значений. В MATLAB'е это делает команда eig, которую мы и применим сейчас:
1;sp=eig(A); plot(sp), [y,yi]=min(abs(sp)), [z,zi]=max(abs(sp)), c=z/y
Из графика видно, что все собственные значения вещественны (по оси абсцисс отложены значения индекса) и никак не упорядочены. Ближе всего к нулю (=0.136) третье из чисел k, дальше всего (=898) - 41-е, а модуль их отношения c(A)c=6.6040e+3 называется числом обусловленности (condition number) матрицы A и отражает гораздо более глубокие ее свойства, чем величина ее определителя (которая по существу вообще ничего не отражает ни в практическом, ни в теоретическом плане). При обращении [V,D]=eig(A) в диагональной матрице D расположены k (раньше они были в векторе-столбце sp), а в матрице V в виде столбцов - соответствующие им собственные векторы vk с единичной среднеквадратичной нормой
sum(vk2))1/2=1, k=1:m.
Команда eig (и целый ряд основанных на ней) имеет неплохую точность при решении спектральных задач средней сложности и является очень информативной. В нашем примере есть относительно близкие друг к другу k. Чтобы в этом убедиться, выполним строку
2;ssp=sort(sp); v=1:m-1; di=diff(ssp); min(abs([di./ssp(v);di./ssp(v+1)]))
(нормировка разностей делается на каждый член пары) и получим 0.0044, т.е. есть такая пара, у которой совпадает более двух знаков, так что наш пример в спектральном плане не совсем тривиальный. Теперь сделаем матрицу A вырожденной путем дублирования ее строк и посмотрим, как это отразится на результатах eig:
3;r=zeros(1,m-1); for k=1:m-1, v=[1:k,k,k+2:m]; C=A(v,:); r(k)=min(abs(eig(C))); end, plot(r)
Результаты следует признать неплохими - max(r)=1e-13 и есть даже несколько чистых нулей.
Чтобы получить представление о собственных векторах преобразования A, выполним строку
4;[V,D]=eig(A); D=V'*V; D(1:m+1:m^2)=0; mcv=max(abs(D(:)))
и получим mcv=7.5460e-16. Это означает, что собственные векторы с высокой степенью точности ортогональны, как и должно быть для симметричной матрицы A.
4.Теоретическая оценка погрешности при решении линейных систем. Объясним смысл числа обусловленности c(A), который имеет фундаментальное значение для вычислительных методов линейной алгебры. Пусть
A*u=f0, A*du=df0, re(f)=max(abs(df))/max(abs(f)) .
Тогда u0 и du0 ввиду невырожденности A. Будем рассматривать df как ошибку в f (ввиду линейности задачи это не приводит к потере общности - считать вектор df малым не нужно). Оценим величину
re(u)=max(abs(du))/max(abs(u)) для всех допустимых f и df,
т.е. возникающую при решении нашей системы относительную ошибку, которая является весьма общей характеристикой матрицы A. Если y, z и c - числа, определенные в строке
1;sp=eig(A); plot(sp), [y,yi]=min(abs(sp)), [z,zi]=max(abs(sp)), c=z/y
(это строка 1 из предыдущего примера), то
max(abs(du))z -1max(abs(df)),
поскольку du=A-1u и z -1 - максимальное по модулю собственное значение для A-1, причем равенство для max(abs(du)) теоретически возможно. Аналогично
max(abs(u))y-1max(abs(f)),
поскольку y -1 - минимальное по модулю собственное значение для A-1, и знак равенства здесь также возможен. Объединяя оценки для числителя и знаменателя re(u), будем иметь
re(u) z -1/y -1(max(abs(df))/max(abs(f))) или re(u) (y/z) re(f), т.е. re(u) c*re(f),
причем равенство обязательно достигается хотя бы для одной пары f и df. Другими словами, число обусловленности c(A) есть точная верхняя граница роста относительной ошибки при решении нашей системы: если относительная ошибка правой части равна re(f), то относительная ошибка решения re(u) не превзойдет ее более чем в c(A) раз.
Ввиду важности этого результата полезно понимать его и на пальцах: df переходит в du с возрастанием компонент не более чем в z -1 раз, а f переходит в u с уменьшением компонент не более чем в y -1 раз, так что
re(u) (z -1/y -1) re(f).
Мы установили смысл числа c(A), исходя из максимум-нормы векторов f, когда norm(f)=max(abs(f)), но более точное рассмотрение показывает, что это верно и для среднеквадратичной нормы
norm(f)=(sum(abs(f.^2))^0.5.
Команда cond(A) вычисляет значение c(A) для квадратной невырожденной матрицы A, но в cond спектр sp ищется не для A, а для B=A'A, ибо тогда вся спектральная задача для B становится заведомо вещественной и, более того, все ее собственные векторы взаимно ортогональны (последнее обстоятельство существенно уменьшает среднеквадратичную ошибку при этих сложных вычислениях). Для получения наших y и z нужно лишь извлечь квадратный корень из y(B) и z(B) - это также делается в команде cond(A). Для нашего примера c(A)=
2;cond(A) (=6.6040e+3)
и совпадает со значением c из строки 1, поскольку A - симметричная матрица.
Несмотря на внешнюю простоту, понятие числа обусловленности было четко сформулировано только в середине 1960-х гг., т.е. примерно через 15 лет после появления первых ЭВМ, а широко использоваться стало еще позже. Для вычислительных методов оно оказалось важнее понятия линейной зависимости, которое теперь некоторым образом выражается через него, но мы уже не будем здесь этого уточнять.
5.Практическая оценка погрешности. Число обусловленности может быть не всегда подходящим для оценки погрешности. Это так при большом n - тогда решение спектральной задачи в команде cond будет слишком дорогим. Это так и в том случае, когда ошибка df специфически неравномерна и имеет характерный профиль - тогда желательно иметь и профиль для поточечных ошибок du(k), чего, конечно, никак не может дать cond(A). В таких случаях приходится прибегать к непосредственному моделированию ошибок, которое состоит в задании некоторого множества случайных возмущений правой части и решении всех таких систем с последующим поточечным описанием границ получившихся решений. Проиллюстрируем этот способ оценки ошибки на нашем примере.
Восстановим этот пример:
1;hx=.1; x=1:hx:5; m=length(x); A=toeplitz(exp(x)); ut=sin(x)'; f=A*ut; u=A\f;
(здесь введен шаг hx). Пусть ошибка
df(x) в f(x) есть равномерно распределенная случайная величина,
по модулю не превосходящая значения g(x)=1e-4*f(t)dt в пределах от 1 до x.
В строке
2;g=1e-4*hx*abs(cumsum(f)); rand('state',0); n=30; V=(1:m)'*ones(1,n); plot([f/max(abs(f)),g/max(g)]), grid
задается профиль g=g(x) максимально допустимой ошибки в точке x, приводится в исходное состояние счетчик случайных чисел rand, задается число n=30 возмущений правой части f и матрица V размеров m*n из продублированного n раз столбца (1:m)'. График показывает, что самые большие ошибки там, где abs(f) мало. В строке
3;F=f(V)+g(V).*(2*rand(m,n)-1); U=A\F;plot(U), pause, plot([g(V).*(2*rand(m,n)-1),g])
создается матрица F возмущенных правых частей из m строк и n столбцов путем прибавления к размноженному n раз вектору f возмущений в нужных границах, решаются все системы AU=F и выводятся на график все решения U и все возмущения вместе с их границей. Из последнего графика видно, что возмущения заданы правильно. В строке
4;ua=max(U,[],2); ui=min(U,[],2); plot([ui,ut,ua])
путем обработки U вдоль строк находятся поточечные границы решений (ua - верхняя, ui - нижняя) и строится график точного решения и этих границ.
Результат кажется нам плохим потому, что на графике
5;plot(F)
возмущений просто не видно (масштаб f забил их), а в U они отразились слишком сильно. Но формально он не противоречит оценке, связанной с числом обусловленности c(A). Действительно, без учета профиля df максимальная ошибка me вычисляется как
6;sp=eig(A); me=min(abs(sp))^(-1)*max(g)
и равна 0.6064, тогда как
7;max([ua-ut;ut-ui]) (=0.5180)
и лишь немного подрастет с увеличением n (при n=100 это 0.5540), т.е. не превзойдет значения me, что и свидетельствует о формальной согласованности обоих методов оценки погрешности. Чтобы окончательно избавиться от ощущения какой-то несогласованности наших методов, применим критерий cond(A) для среднеквадратичной нормы. Для этогог нам нужно пройтись по всем столбцам k=1:n (сейчас n=30) матриц U и F и вычислить
max( (norm(du)/norm(u)) / (norm(df)/norm(f)) ) .
Запишем это в виде (максимально используйте карман при наборе строк)
8;max((sum((U-ut(V)).^2).^.5./sum(U.^2).^.5)./(sum((F-f(V)).^2).^.5./sum(F.^2).^.5))
и получим 3.6484e+3, что меньше c(A)=6.6040e+3, так что и здесь мы не обнаружили противоречия.
Если подойти к оценке погрешности упрощенно, построив график
9;gm=max(g); plot(A\[f-gm,f,f+gm])
то все три линии на нем практически совпадут. Таким способом можно моделировать ошибку, если преобразование A-1 монотонно, т.е. если при f1<f2 обязательно u1<u2 или, наоборот, обязательно u1>u2. Но у нас это не так: на графике (эта строка получается из строки 9)
10;gm=100*max(g);plot(A\[f-gm,f,f+gm])
желтая линия (она соответствует решению для правой части f-gm<f) то выше, то ниже фиолетовой. Именно из-за немонотонности преобразования A-1 получается такой заметный разброс в U. С помощью этого приема можно быстро выяснить монотонность преобразования y=Q(x) (не обязательно линейного), что далеко не всегда удается определить теоретически: если все отклики Y=Q(X), x-a<X<x+a, a>0, лежат между Q(x-a) и Q(x+a), то преобразование Q монотонно, и нужно лишь взять значение a таким, чтобы результат был виден на графике (для этого нам пришлось увеличить max(g) в 100 раз).
6.Посмотрим, как изменятся результаты нашего примера при увеличении m - порядка матрицы A. Выполним, не меняя смысла задачи, отредактированную строку 1 предыдущего примера
1;clear all, hx=.01; x=1:hx:5; A=toeplitz(exp(x)); ut=sin(x)'; f=A*ut;u=A\f; plot([ut,u]), c=cond(A)
Здесь шаг hx уменьшен в 10 раз, так что теперь порядок m=401 - довольно высокий; c(A)= 6.0804e5 возросло почти в 100 раз, т.е. обусловленность A заметно ухудшилась (примерно в 102 раз), но
2;max(abs(u-ut)) (=1.3153e-9)
еще достаточно мал, хотя и возрос примерно в 103 раз, т.е. больше, чем c(A). Такое расхождение с теорией как бы предупреждает о том, что даже при сохранении смысла задачи увеличение ее размерности не позволяет автоматически применять критерий числа обусловленности к оценке ошибок округления. К выбору числа m нужно всегда относиться с повышенным вниманием.
Чтобы получить представление о собственных векторах преобразования A, выполним строку
3;[V,D]=eig(A); D=V'*V; m=length(x); D(1:m+1:m^2)=0; mcv=max(abs(D(:)))
и получим mcv=2.2985e-15, т.е. степень ортогональности остается удивительно высокой. Жордановы клетки порядка выше первого могут быть тогда, когда mcv(A)>0.99.
Мы рассмотрели этот пример так подробно, чтобы показать исключительно высокие возможности MATLAB'а в том, что касается анализа результатов.
Литература
1. Using MATLAB. Version 5.2. The Mathworks, Inc., 1997. 531 p. MATLAB 5.2 Product Family New Features. Version 5.2. The Mathworks, Inc., 1998. 202 p.
2. Using MATLAB Graphics. Version5.2. The Mathworks, Inc., 1997. 372 p.
3. MATLAB Functions Reference (Volumes 1 and 2). Version 5. The Mathworks, Inc., 1998. 819 p., 586 p.
4. Дьяконов В.П. Справочник по применению системы PC MatLab. М., Физматлит, 1993 112 с.
5. Потемкин В.Г. Система MATLAB. Справочное пособие. М., "Диалог-МИФИ", 1997. 350 с.
6. Гультяев А. MATLAB 5.2. Имитационное моделирование в среде Windows. СПб, "Коронс-принт", 1999, 288 с.
7. Дьяконов В.П., Абраменкова К.В. MATLAB 5. Система символьной математики. М., Нолидж, 1999, 633 с.
8. Лазарев Ю.Ф. MATLAB 5.х. Киев, Изд. группа BHV, 2000, 384 с. ("Б-ка студента").
9. Медведев В.С., Потёмкин В.Г. Control System Toolbox. MATLAB 5 для студентов. М., "Диалог-МИФИ", 1997, 287 с.
10. Потёмкин, В.Г. Введение в MATLAB. М., "Диалог-МИФИ", 2000, 350 с.
11. Потёмкин, В.Г. Система инженерных расчетов MATLAB 5.х. В 2-х томах. М., "Диалог-МИФИ", 1999, 366 с., 304 с.
12. Рудаков П.И., Сафонов В.И. Обработка сигналов и изображений. MATLAB 5x. М., Диалог-МИФИ", 2000, 413 с. ("Пакеты прикладных программ").
Подобные документы
Matlab - матричная лаборатория - система программирования для научно-технических расчетов. Особенности ввода векторов. Специальные матрицы, простые команды. Простые примеры, иллюстрирующие эффективность Matlab. Графический способ решения уравнений.
реферат [46,3 K], добавлен 05.01.2010Назначение и особенности системы MATLAB. Запуск программы, работа в режиме диалога, понятие о сессии, операции строчного редактирования. Формирование векторов и матриц. Графики ряда функций. Знакомство с трехмерной графикой. Интерфейс основного окна.
учебное пособие [65,9 K], добавлен 17.03.2011Особенности работы в режиме командной строки в системе Matlab. Переменные и присваивание им значений. Комплексные числа и вычисления в системе Matlab. Вычисления с использованием функции sqrt. Неправильное использование функций с комплексными аргументами.
дипломная работа [1,9 M], добавлен 30.07.2015Программный комплекс MATLAB как мощное средство для высокоточного цифрового моделирования системы автоматического управления. Основные особенности построения временных характеристик с помощью пакета Control System и моделирования в системе Simulink.
контрольная работа [2,3 M], добавлен 14.11.2012Изучение программирования в MATLAB. Использование команд Save и Load, операторы ввода и вывода для работы в командном окне. Отладка собственных программ. Интерфейс MATLAB. Отличия поздней версии MATLAB от более ранних. Средство Source Control Interface.
контрольная работа [43,0 K], добавлен 25.12.2011Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.
курсовая работа [1,1 M], добавлен 15.12.2010Модель релейной системы регулирования и идентификации структуры отдельного характерного элемента ЭКС зубца Р в системе MatLab. Анализ линейных звеньев с применением Control System Toolbox и Simulink. Методы построения переходных и частотных характеристик.
дипломная работа [1,1 M], добавлен 28.01.2015Исследование линейных динамических моделей в программном пакете Matlab и ознакомление с временными и частотными характеристиками систем автоматического управления. Поиск полюса и нуля передаточной функции с использованием команд pole, zero в Matlab.
лабораторная работа [53,1 K], добавлен 11.03.2012Анализ возможностей пакета MATLAB и его расширений. Язык программирования системы. Исследование выпрямительного устройства. Моделирование трёхфазного трансформатора. Схема принципиальная регулируемого конвертора. Возможности гибкой цифровой модели.
презентация [5,1 M], добавлен 22.10.2013Использование программного обеспечения MatLab для выполнения математических расчетов в области линейной алгебры, теории информации и обработки сигналов, автоматического и автоматизированного управления. Возможности стандартного интерфейса программы.
курсовая работа [178,7 K], добавлен 08.08.2011