Symbolic math toolbox matlab как установить
Перейти к содержимому

Symbolic math toolbox matlab как установить

  • автор:

Symbolic math toolbox matlab как установить

How to use the Symbolic Math Toolbox in MATLAB to analyze the Fourier series

Symbolic Math Toolbox provides an easy, intuitive and complete environment to interactively learn and apply math operations such as calculus, algebra, and differential equations.

It can perform common analytical computations such as differentiation and integration to get close form results.

It simplifies and manipulates expression for great insights and solves algebraic and differential equations.

In this tutorial, the Fourier series (Trigonometric and Exponential) is implemented and simulated using MATLAB’s Symbolic Math Toolbox.

The proposed programs are versatile and can receive any function of time(t). It means that the function is dependent on time.

Moreover, the program gives plots of harmonics, original and approximated functions, magnitude spectrum, and phase spectrum.

This toolbox is already available in MATLAB. Therefore, you do not need to retrieve it from an external source. For example, to understand more about the Fourier series, you can read here.

Prerequisites

To follow along with this tutorial, you will need:

    installed.
  1. A proper understanding of MATLAB basics.
Symbolic Math Toolbox

This toolbox has a wide range of applications:

To visualize analytical expressions in 2D and 3D and animate plots to create videos.

Symbolic Math Toolbox in the live editor (mode in MATLAB) lets you interactively update and display Symbolic math computations.

Besides, MATLAB code, formatted text, equations, and images can be published as executable live scripts, PDFs, or HTML documents.

While working with analytical problems, you can receive suggestions and tips. These suggestions help one insert and execute function calls or tasks directly into live scripts.

The Symbolic Math Toolbox also provides precision for higher or lower positions. It allows algorithms to run better than MATLAB’s in-built double. Furthermore, it has units for working with physical quantities and performing dimensional analysis.

Units for working with physical quantities

This is an example of how this toolbox adds units for physical quantities

Symbolic Math Toolbox is widely applied in many engineering and scientific applications. Symbolic expressions of exact gradient and Hessians improve accuracy and optimization speed.

In non-linear control design, the Symbolic Math Toolbox improves recalculation speed at any operating point during execution. Furthermore, you can integrate symbolic results with MATLAB and Simulink applications. It is done by converting symbolic expressions into numeric MATLAB functions, Simulink, and Simscape blocks.

converting functions to Simulink

Sample of function converted to Simulink

Now, all these applications discussed above were to give you an insight into the wide application of this toolbox. However, not all of them are discussed here. Here, we will only major in using the toolbox to solve Fourier series problems.

How to use the Symbolic Math Toolbox

This toolbox is enabled in MATLAB using the function syms . However, you get an error message if you have the expression x=2*a+b and try to execute it in Matlab. The error message is undefined function or variable ‘a’ as shown below:

When using the syms function, the variable x is saved without the error message. When using the Symbolic Math Toolbox, the idea here is that you first define the symbolic variables. Symbolic variables are the undefined variables in an equation. For example, our symbols are a and b for our expression above. We first define these variables using the symbolic function syms .

After defining the symbols and rerunning the code above, our workspace stored our variables. We will then have:

Solving Fourier series using the Symbolic Math Toolbox

Let’s say we have a Fourier transform shown below:

The symbolic variables are t , w , T , and W , which we define by executing the command below:

w is the angle theta, T is the time function, and W is used to express the angular radians in the Fourier transform.

After the declaration of the symbolic variables, you can write the Fourier transform as shown below:

In MATLAB, int means integration. In the MATLAB expression above: exp(-t/2) is our equation which we are finding its Fourier transform. exp(-j*w*t) is the basic function of the Fourier transform. t shows that we are differentiating with respect to time. [0, inf] shows the integration limits from 0 to infinity .

Note that we don’t write f(t) when writing our equation in MATLAB. It is because we already know that our function is a time function. Also, t is a symbol variable, so we do not write it in our expression.

When the above program is executed, we get the output below:

To format this output in a user-friendly manner, we use the function pretty() . pretty(f) prints the symbolic expression f in a format that resembles type-set mathematical equations. When you execute this function in the command window, we have:

Now, we need to get the values of w since we use them to plot the Fourier transform. To do that, execute the code below:

subs mean symbolic substitution. This function replaces the symbolic variable in f with the values of w . The values range from -pi to pi . When we do this, we get the values below:

We now plot these values using the plot() function.

plot(angle(double(data_value))) gives the phase spectrum plot. The function subplot() is used to create a subplot. title() gives the plot a title.

phase spectrum

Phase spectrum plot

Now, let us plot the magnitude response using the same values of w .

The code plot(abs(double(data_values))) gives the magnitude spectrum. This plot uses the absolute values of the data, thus abs() .

magnitude spectrum

Magnitude spectrum plot

Example 2

Let’s look at another example:

example 2

The output here is:

To find the values of w , we use the subs() function.

After that, we plot the absolute values of the variable f-sub .

Range of -pi to pi

Plot for the range -pi to pi

Range of -2pi to 2pi

Plot for the range -2pi to 2pi

Range of -4pi to 4pi

Plot for the range -4pi to 4pi

Range of -8pi to 8pi

Plot for the range -8pi to 8pi

While making the plots, we used the ezplot function. ezplot(FUN) is used to plot a function x over the default domain, -2*pi<x<2*pi . As we have seen, the Symbolic Math Toolbox makes it easy to analyze the Fourier series. Moreover, it makes it easy since you do not have to write long codes.

Conclusion

Symbolic Math Toolbox is an important toolbox for solving differential and integration operations. As we have seen in solving the Fourier series above, it is easy to use. This toolbox also helps find the Laplace transform of various equations. Generally, this toolbox has a wide application in science and engineering.

How to Install the Symbolic Math Toolbox to Use with MATLAB

Book image

Once you have obtained a copy of the Symbolic Math Toolbox to use with MATLAB, you should have a number of files on your hard drive. These files provide everything needed to install the Symbolic Math Toolbox. You have two ways by which you can interact with the files:

If you were able to use the download agent, you see a dialog box telling you that the download is complete. At this point, you can perform one of these two tasks:

Select the Start Installer option and click Finish to start the installation process. The Symbolic Math Toolbox installer will start automatically.

Select the Open Location of the Downloaded Files option and click Finish. You see the location of the files open, and you must double-click the installer file to start the installation process. (The installer file is typically the only executable program in the folder.)

If you performed the manual download process, you need to find the download location of the files. You must double-click the installer file to start the installation process. (The installer file is typically the only executable program in the folder.)

Windows platform users may see a User Account Control (UAC) dialog box when starting the installer. Click Yes to give the installer permission to install the Symbolic Math Toolbox. Otherwise, the installation will fail.

No matter how you start the installer, eventually you see a MathWorks installer dialog box. This dialog box determines the source of the files that you use to perform the installation. (Choosing the Install Using the Internet option downloads the files directly from the MathWorks site — you also have the option of using source files on your hard drive.) The following steps help you complete the installation process.

Select an installation source (either Internet or local hard drive) and click Next.

Select an installation source (either Internet or local hard drive) and click Next.

You see the License Agreement dialog box.

Read the licensing agreement, click Yes, and then click Next.

Read the licensing agreement, click Yes, and then click Next.

You see the File Installation Key dialog box. This is where you supply the licensing information. If you don’t have the key, make sure that you select the second option and follow the steps required to obtain the license.

Supply the File Installation Key and click Next.

The installer asks you to select an installation method. In most cases, you obtain a better, faster, more error-free installation by selecting the Typical option. The steps that follow assume that you have chosen the Typical option.

Click the Typical option and then click Next.

The installer asks you to choose an installation destination. This destination differs by platform. In most cases, choosing the default installation destination is the best idea. However, if you have an existing installation and want to preserve this installation precisely as it is, you need to choose a different installation location.

Choose a destination location, if necessary, and click Next.

Choose a destination location, if necessary, and click Next.

If you already have a copy of MATLAB installed and you choose the default installation location, the installer will ask whether you want to overwrite the existing copy. Click Yes To All (if you need to update your copy of MATLAB) or No (when you have the most current version) to proceed.

When you click Yes To All, you agree to allow the installer to remove your old copy of MATLAB and install a new one. Be aware that you’ll likely lose any special configuration options you have set up, along with any features you had installed previously.

The installer displays a Confirmation dialog box. Check the details carefully to ensure that the installation provides everything you need.

Click Install.

The installation process begins. You can watch the progress by checking the progress bar. The installation can require several minutes depending on the installation options you choose, the complexity of the installation, and the speed of your system.

When the installation process is complete, you see an Installation Complete dialog box.

Select the Activate MATLAB option and then click Next.

MATLAB asks whether you want to activate your copy using the Internet or manually. Using the Internet is generally the faster and easier option, unless you have already downloaded a license file ( license.lic ) as part of getting the file installation key.

Choose an activation option and click Next.

Choose an activation option and click Next.

When you choose the Internet option, you must provide your email address and password to log on to the system for activation purposes. If you don’t have an account, you can also choose to create an account or provide the location of your locally stored license.lic file.

Supply any required input and click Next.

If activation is successful, you see an Activation Complete dialog box. (When you don’t see this dialog box, retry obtaining the required activation or contact MathWorks support.)

MATLAB 8.0 (R2012b) — красота аналитических вычислений с пакетом Symbolic Math Toolbox

В MATLAB 8.0 символьные (аналитические) вычисления выполняются с применением пакета расширения по символьной математике Symbolic Math Toolbox 5.9, созданного на основе сравнительно новой системы компьютерной математики MuPad, встроенной в MATLAB. Вычисления можно выполнять прямо в окне командного режима работы MATLAB (рис. 1).

Примеры символьных вычислений в окне командного режима MATLAB 8.0

Рис. 1. Примеры символьных вычислений в окне командного режима MATLAB 8.0

Для изучения возможностей символьных вычислений рекомендуется пользоваться справкой по пакету расширения Symbolic Math Toobox (рис. 2). Она подробная, но представлена на английском языке.

Окно справки MATLAB 8.0 по пакету расширения Symbolic Math Toolbox

Рис. 2. Окно справки MATLAB 8.0 по пакету расширения Symbolic Math Toolbox

Есть и другой путь оценки всех возможностей пакета. Для этого нужно исполнить в командном режиме команду:

Будут выведены данные о версии пакета, дата его создания и список всех возможностей:

Мы привели лишь начало списка. Пользователю настоятельно рекомендуется просмотреть этот список полностью. Команда help name выводит справку по функции с именем name.

Есть и другой, порою более удобный путь выполнения таких вычислений — в окне ноутбука интегрированной системы компьютерной алгебры MuPad со своим графическим интерфейсом пользователя GUI (рис. 3). Ноутбук вызывается кнопкой MuPad в каталоге приложений APPS новейшей системы MATLAB 8.0.

Ноутбук системы MuPad 5.9, интегрированной с MATLAB 8.0

Рис. 3. Ноутбук системы MuPad 5.9, интегрированной с MATLAB 8.0

В правой части окна MuPad расположены отключаемые панели ввода операторов и функций MuPad и команд графики. На рис. 3 приведены простые примеры вычислений и окно c данными пакета Symbolic Math.

Начало символьных вычислений

При символьных вычислениях используются неопределенные (символьные) переменные. В ноутбуках MuPad все переменные изначально являются неопределенными. При вычислениях в командном окне MATLAB символьные переменные задаются поодиночке как:

или группой, например:

Заданные переменные появляются в рабочем пространстве MATLAB (рис. 1). Теперь становится возможным выполнение простых аналитических вычислений, например проверка правила о том, что при любом x сумма квадратов синуса и косинуса равна 1:

Обратите внимание на то, что в режиме символьных вычислений входные и выходные ячейки выводятся без характерного для обычных численных вычислений отступа относительно символа приглашения >>. Программы указываются без символа >> у строк ввода.

Symbolic Math работает с 8–64‑разрядными числами и числами одинарной и двойной точности. Для работы с комплексными числами также существует ряд возможностей, например вызов действительной и мнимой частей:

С комплексными числами могут работать также некоторые функции символьных преобразований, которые будут описаны позже.

Математические выражения и функции

В математических выражениях могут использоваться широко распространенные встроенные функции и арифметические операторы «+», «–», «*», «/» и «^». В общем случае это векторные и матричные операторы. Если необходимы операторы поэлементные, то нужно использовать операторы «.+», «.–», «.*», «./» и «.^». Пример:

В выражениях доступны все элементарные функции и множество специальных. Так, в приведенном примере использована функция синуса. Можно также задать абстрактную функцию:

Набор операторов и функций системы MuPad немного отличается от примененного в пакете расширения Symbolic Math. Этот набор представлен в панелях ноутбуков.

Вывод символьного выражения в формате C , LaTeX и Fortran

К сожалению, в отличие от современных систем символьной математики (Mathcad, Maple или Mathematica), система MATLAB пока не рассчитана на вывод выражений и результатов их преобразований в естественной математической форме. Тем не менее некоторые, ограниченные текстовым форматом возможности близкого к математическому виду вывода обеспечивает функция pretty:

Функция latex(S) возвращает выражение S в форме языка LaTeX. Примеры применения этой функции:

С помощью функции ccode(S) можно представить выражения языка MATLAB в форме, принятой в языке C:

Функция fortran(S) обеспечивает преобразование выражения MATLAB в форму, соответствующую записи на языке Fortran.

Матрицы с символьными элементами

Символьные переменные можно использовать в качестве элементов матриц:

С такими матрицами можно выполнять различные символьные операции, описанные ниже. Символьные операции можно выполнять и в окне ноутбука системы MuPad (рис. 4). Кстати, в нем показано окно справки по точечному произведению матриц.

Выполнение символьных операций в окне ноутбука системы MuPad

Рис. 4. Выполнение символьных операций в окне ноутбука системы MuPad

Векторизация означает проведение почленного преобразования элементов матриц и векторов. В MATLAB функция vectorize(S) для символьного выражения S вставляет знак «.» перед всеми следующими символами: «^», «*» или «/». Результатом будет строка, содержащая операторы для почленного вычисления выражения:

Арифметика произвольной точности

Арифметикой произвольной точности, или просто точной арифметикой, называют вычисления, у которых все числа результатов являются точными. Функция digits служит для установки числа цифр в числах арифметики произвольной точности:

Для проведения вычислений в арифметике произвольной точности (со всеми верными цифрами чисел) служит функция vpa(S), которая возвращает результат вычислений каждого элемента символьного массива S , используя арифметику произвольной точности с текущим числом цифр D , установленным функцией digits. Функция vpa(S,D) возвращает результат с количеством знаков чисел D .

Точные вычисления с большими факториалами в ноутбуке системы MuPad показаны на рис. 3.

Символьные операции линейной алгебры

Линейная алгебра — главная особенность системы MATLAB. Но реализована она численными методами. В этом разделе описаны функции линейной алгебры, обеспечивающие символьные преобразования и вычисления векторов и матриц, существенно расширяющие типовые средства линейной алгебры системы MATLAB.

Для создания диагональных матриц и извлечения из них диагональных элементов служит функция diag(V,K): если V — вектор с N компонентами, то формируется квадратная матрица с размером N+ABS(K), в которой на K ‑ой диагонали размещен вектор V . При K = 0 вектор V располагается на главной диагонали, при K > 0 на K ‑ой диагонали сверху, а при K < 0 — снизу относительно главной диагонали. Помимо заданных, остальные элементы матриц — нули. Применение этой функции вполне очевидно, как и функции triu для формирования верхней треугольной матрицы и tril — для формирования нижней треугольной матрицы.

Для обращения (инвертирования) матрицы в символьном виде используется функция inv:

Функция det(X) вычисляет детерминант квадратной матрицы в символьном виде.

Для вычисления ранга квадратной матрицы используется функция rank:

Для приведения матрицы к верхней треугольной форме используется функция rref. Функция [R,jb] = rref(A,tol) осуществляет приведение матрицы к треугольной форме, используя метод исключения Гаусса с частичным выбором ведущего элемента для заданного значения порога допустимости tol.

Функция Z = null(A) возвращает матрицу Z , столбцы которой являются базисом нуль-пространства целочисленной матрицы A . Число столбцов матрицы Z задает размер нуль-пространства. При этом A * Z = 0, а если матрица A имеет полный ранг, то матрица Z будет пустой.

Функция colspace(A) возвращает матрицу, столбцы которой являются образующими базиса пространства. Ранг целочисленной матрицы A равен size(B,2) . Для вычисления собственных значений и собственных векторов матриц используется функция eig, имеющая ряд форм записи:

LAMBDA=eig(A) — формирует символьный вектор LAMBDA собственных значений квадратной матрицы A .

[V,D]=eig(A) — возвращает матрицу V , столбцы которой являются векторами собственных значений матрицы A , и диагональную матрицу D собственных значений. Если размеры V и A одинаковы, то A имеет полную систему независимых собственных векторов. При этом A * V = V * D .

[V,D,P]=eig(A) — дополнительно к сказанному возвращает вектор индексов P , длина которого равна числу линейно независимых векторов. При этом A * V = V * D ( P , P ).

LAMBDA=eig(VPA(A)) и [V,D]= eig(VPA(A)) — возвращают численные значения собственных векторов и собственных значений в формате арифметики с произвольной точностью. Если матрица A не имеет полной системы собственных векторов, то столбцы матрицы V будут линейно зависимыми.

Для символьного вычисления матричных функций и операций линейной алгебры служит пакет расширения MuPad linalg:: (рис. 5). С его имени начинаются имена функций этого пакета. На рис. 5 показаны некоторые операции линейной алгебры и окно с разделом справки по операции транспонирования матриц.

Вычисление некоторых матричных функций в ноутбуке MuPad

Рис. 5. Вычисление некоторых матричных функций в ноутбуке MuPad

О богатстве операций линейной алгебры свидетельствует ноутбук системы MuPad (рис. 6). В правой части его окна открыты списки основных математических операций General Math и основных групп операций линейной алгебры.

Окно ноутбука MuPad: списки основных математических операций General Math и основных групп операций линейной алгебры

Рис. 6. Окно ноутбука MuPad: списки основных математических операций General Math и основных групп операций линейной алгебры

Символьные операции математического анализа

Для вычисления в символьном виде производных от выражения S служит функция diff, записываемая в формате diff(S,‘v’) или diff(S, sym(‘v’)). Она возвращает символьное значение первой ( n = 1) производной от символьного выражения или массива символьных выражений S по переменной v :

Действие этой функции:

diff(S,n) — возвращает n ‑ю ( n — целое число) производную от символьного выражения или массива символьных выражений S по переменной v .

diff(S,‘v’,n) и diff(S,n,‘v’) — возвращает
n ‑ю производную S по переменной v , то есть значение:

S n ( v ) = d n S / dv n .

В практической работе часто возникает необходимость вычисления неопределенных и определенных интегралов вида:

I = f ( x ) dx

где f ( x ) — подынтегральная функция независимой переменной x ; a и b — нижний и верхний пределы интегрирования для определенного интеграла.

Примеры применения этой функции:

С помощью функции int можно вычислять имеющие аналитическое решение сложные интегралы, например с бесконечными пределами (или одним из пределов), а также кратные интегралы. Пример вычисления одного из таких интегралов:

Аппарат точной арифметики позволяет вычислять определенные интегралы, хотя при этом возникают трудности в связи с большими числами. К примеру, интеграл:

часто дает нулевое значение вместо 0,01835… Попробуем выяснить, в чем тут дело. Вычислим для этого неопределенный интеграл:

x 20 exp(– x ) dx ,

используя функцию int, но в символьном виде:

Нетрудно заметить, что интеграл представлен рядом экспонент с большими множителями перед ними. MATLAB с пакетом Symbolic Math благополучно выдает точное и приближенное значение нашего интеграла:

Следующий пример относится к вычислению тройного интеграла:

Вычисление пределов функций представляет собой важный раздел математического анализа. Число L называется пределом функции F ( x ) в точке a , если при x , стремящемся к a (или x a ), значение функции неограниченно приближается к L . Это обозначается следующим образом:

Предел может быть конечным числом, положительной или отрицательной бесконечностью. Приведем примеры применения этих функций:

В задачах аппроксимации и приближения функций f ( x ) важное место занимает их разложение в ряд Тейлора в окрестности точки a :

Частным случаем этого ряда при a = 0 является ряд Маклорена:

Для получения разложений аналитических функций в ряд Тейлора (и Маклорена) пятого порядка служит функция taylor:

Опция Order с последующим числом позволяет указать максимальный порядок (степень) ряда. Для построения графиков различных функций очень удобна графическая функция ezplot(f(x),[xmin, xmax]). Приведем программу, позволяющую сравнить график функции sin( x ) с графиком ряда Маклорена порядка 8 (рис. 7):

Сравнение синусоидальной функции с ее разложением в ряд Маклорена с максимальной степенью 8

Рис. 7. Сравнение синусоидальной функции с ее разложением в ряд Маклорена с максимальной степенью 8

Следует сделать несколько комментариев по программе. Графики она строит в интервале изменения x от – pi до + pi . Кривые помечены разным цветом: синим — синусоида, красным — ее разложение в ряд. Установки set задают вид кривой и ее параметры. Команда hold on задерживает построение кривой синуса и позволяет отобразить ее в одном окне с кривой разложения. После этого команда hold off отключает задержку. Уже при максимальном порядке 10 кривые синуса и ряда Маклорена в пределах периода синусоиды совпадают в заданном интервале изменения x .

вычисляется функцией jacobian:

В математическом анализе часто приходится вычислять суммы некоторой функции f ( i ) для целочисленных значений аргумента i от a до b :

Примеры вычисления сумм:

Вычисление специальных функций

Специальные функции являются решениями интегралов специального вида или дифференциальных уравнений. В Symbolic Math включены основные типы специальных математических функций:

Рассмотрим некоторые из них. Для вычисления интегрального синуса:

служит функция sinint(z).

Интегральный косинус при |arg( z )| < p определяется выражением:

где g — постоянная Эйлера (0,5772…).

На рис. 8 показан построенный график функции интегрального косинуса при x от 0 до 10.

График функции интегрального косинуса

Рис. 8. График функции интегрального косинуса

Дзета-функция Римана определяется выражением:

W‑функция Ламберта является решением трансцендентного уравнения w exp( w ) = x и задается функцией lambertw(X) или lambertw(K, X). В последнем виде функция находит K ‑ю комплексную ветвь для многозначной функции.

Пример применения этой функции:

Функции rsums(f) и rsums f вычисляют приближение Римана к интегралу с подынтегральной функцией f ( x ) и строят график функции в виде столбцовой диаграммы и площадей под ее кривой (рис. 9). Здесь используется функция tan(x). Число термов можно менять от 2 до 256, перемещая ползунок под рисунком.

Столбцовая диаграмма функции rsums

Рис. 9. Столбцовая диаграмма функции rsums

Решение алгебраических уравнений

Для решения систем алгебраических уравнений и одиночных уравнений служит функция solve:

Обратите внимание на то, что для задания уравнений в явном виде используются строковые выражения, для чего уравнения заключаются в апострофы. Уравнения могут решаться и в окне ноутбуков встроенной системы MuPad, при этом задание уравнений и их решения приближены к обычному математическому виду, показанному на рис. 10.

Примеры решения уравнений в ноутбуке MuPad

Рис. 10. Примеры решения уравнений в ноутбуке MuPad

Символьные преобразования и операции с выражениями

Функция simplify(S) поэлементно упрощает символьные выражения:

Функция simple(S) выполняет различные упрощения для элементов массива S и выводит как промежуточные результаты, так и самый короткий конечный результат. В другой форме — [R,HOW] = simple(S) — промежуточные результаты не выводятся. Результаты упрощений содержатся в векторе R , а в строковом векторе HOW указывается выполняемое преобразование:

Функция expand(S) расширяет выражения, входящие в массив S . Рациональные выражения она раскладывает на простые дроби, полиномы — на полиномиальные разложения и т. д. Функция работает со многими алгебраическими и тригонометрическими функциями:

Функция factor(S) поэлементно разлагает выражения вектора S на простые множители, а целые числа — на произведение простых чисел:

Функция collect(S,v) обеспечивает комплектование выражений в составе вектора или матрицы S по степеням переменной v . А функция collect(S)выполняет аналогичные действия относительно переменной, определяемой функцией findsym.

Примеры применения этой функции:

Функция [N,D]=numden(A) преобразует каждый элемент массива A в рациональную форму в виде отношения двух неприводимых полиномов с целочисленными коэффициентами. При этом N и D — числители и знаменатели каждого преобразованного элемента массива. Функция horner(P)возвращает символьный полином или массив символьных полиномов P , преобразованный по схеме Горнера, которая минимизирует число операций умножения:

Функция [Y,SIGMA]=subexpr (X,SIGMA) или [Y,SIGMA]=subexpr (X,‘SIGMA’) преобразует символьное выражение X , обеспечивая при этом подстановку SIGMA. Для представления подвыражений используются обозначения %1,%2 и т. д.

Одной из самых эффектных и часто используемых операций символьной математики является операция подстановки. Она реализуется функцией subs, имеющей несколько форм записи.

Часто возникает необходимость в задании функции, обратной по отношению к заданной функции f . Для этого в Symbolic имеется функция обращения inverse(f):

К числу часто встречающихся в символьной математике манипуляций с функциями относится суперпозиция функций, реализуемая функциями compose:

  • compose(f,g) — возвращает значение функции 1/(1+sin( y ) 2 );
  • compose(f,g,t) — возвращает значение функции 1/(1+sin( t ) 2 );
  • compose(h,g,x,z) — возвращает значение функции sin( z ) t ;
  • compose(h,g,t,z) — возвращает значение функции x sin( z ) ;
  • compose(h,p,x,y,z) — возвращает значение функции exp(– z / u ) t ;
  • compose(h,p,t,u,z) — возвращает значение функции x exp(– y / z ) .

В связи с использованием в символьных вычислениях символьных выражений возникает необходимость в преобразовании их в обычные числа с плавающей точкой и обычной двойной точностью. Для этого служит функция double(S) :

Если задан полином, коэффициенты которого хранятся в векторе C , то функция poly2sym(C) преобразует его в символьное представление полинома в стандартной форме записи с независимой переменной x . Другие функции — poly2sym(C,‘V’) и poly2sym(C,SYM(‘V’) — делают то же, но позволяют задать независимую переменную полинома как V .

Если задан символьный полином P , то функция sym2poly(P) возвращает вектор его коэффициентов. Это поясняют следующие примеры:

Функция char(A) преобразует символьный объект A в строку. Если A — вектор или матрица, результат представляется в форме ‘array([[…]]):

Решение дифференциальных уравнений

Для аналитического решения дифференциальных уравнений в форме Коши служит функция dsolve(‘eqn1’,‘eqn2’, …). Она возвращает аналитическое решение системы дифференциальных уравнений с начальными условиями. Они задаются равенствами eqnI (вначале задаются уравнения, затем начальные условия).

По умолчанию независимой переменной считается переменная t , обычно обозначающая время. Можно использовать и другую переменную, добавив ее в конец списка параметров функции dsolve. Символ D обозначает производную по независимой переменной, то есть d / dt , при этом D 2 означает d 2 / dt 2 и т. д. Имя независимой переменной не должно начинаться с буквы D .

Начальные условия задаются в виде равенств y ( a )= b или Dy ( a )= b , где y — независимая переменная, a и b — константы. Если число начальных условий меньше, чем число дифференциальных уравнений, то в решении будут присутствовать произвольные постоянные C 1, C 2 и т. д. Правила вывода подобны приведенным для функции solve.

Примеры применения функции dsolve:

Решения дифференциальных уравнений легко представить в виде графика. Часто такой график строится на фоне векторного поля решения: пример показан на рис. 11. Там же приведен открытый список поддерживаемых типов графики ноутбуков MuPad.

Примеры решения уравнений (последний пример с построением решения дифференциального уравнения на графике векторного поля)

Рис. 11. Примеры решения уравнений (последний пример с построением решения дифференциального уравнения на графике векторного поля)

Заключение

Пакет расширения Symbolic Math на основе системы компьютерной алгебры MuPad открыл перед матричной системой MATLAB всю красоту и все принципиально новые возможности символьных (аналитических) вычислений. Они реализованы как в командном окне MATLAB, так и в ноутбуках MuPad c их графическим интерфейсом пользователя GUI. В новейшей реализации MATLAB 8.0 (R2012b) появился вызов MuPad из каталога пакетов расширения. Панели для ввода мышью основных операторов и функций символьной математики, а также средства графической визуализации вычислений делают их проведение простым и удобным.

How to use the Symbolic Math Toolbox in MATLAB to analyze the Fourier series

Symbolic Math Toolbox provides an easy, intuitive and complete environment to interactively learn and apply math operations such as calculus, algebra, and differential equations.

It can perform common analytical computations such as differentiation and integration to get close form results.

It simplifies and manipulates expression for great insights and solves algebraic and differential equations.

In this tutorial, the Fourier series (Trigonometric and Exponential) is implemented and simulated using MATLAB’s Symbolic Math Toolbox.

The proposed programs are versatile and can receive any function of time(t). It means that the function is dependent on time.

Moreover, the program gives plots of harmonics, original and approximated functions, magnitude spectrum, and phase spectrum.

This toolbox is already available in MATLAB. Therefore, you do not need to retrieve it from an external source. For example, to understand more about the Fourier series, you can read here.

Prerequisites

To follow along with this tutorial, you will need:

    installed.
  1. A proper understanding of MATLAB basics.

Symbolic Math Toolbox

This toolbox has a wide range of applications:

To visualize analytical expressions in 2D and 3D and animate plots to create videos.

Symbolic Math Toolbox in the live editor (mode in MATLAB) lets you interactively update and display Symbolic math computations.

Besides, MATLAB code, formatted text, equations, and images can be published as executable live scripts, PDFs, or HTML documents.

While working with analytical problems, you can receive suggestions and tips. These suggestions help one insert and execute function calls or tasks directly into live scripts.

The Symbolic Math Toolbox also provides precision for higher or lower positions. It allows algorithms to run better than MATLAB’s in-built double. Furthermore, it has units for working with physical quantities and performing dimensional analysis.

Units for working with physical quantities

This is an example of how this toolbox adds units for physical quantities

Symbolic Math Toolbox is widely applied in many engineering and scientific applications. Symbolic expressions of exact gradient and Hessians improve accuracy and optimization speed.

In non-linear control design, the Symbolic Math Toolbox improves recalculation speed at any operating point during execution. Furthermore, you can integrate symbolic results with MATLAB and Simulink applications. It is done by converting symbolic expressions into numeric MATLAB functions, Simulink, and Simscape blocks.

converting functions to Simulink

Sample of function converted to Simulink

Now, all these applications discussed above were to give you an insight into the wide application of this toolbox. However, not all of them are discussed here. Here, we will only major in using the toolbox to solve Fourier series problems.

How to use the Symbolic Math Toolbox

This toolbox is enabled in MATLAB using the function syms . However, you get an error message if you have the expression x=2*a+b and try to execute it in Matlab. The error message is undefined function or variable ‘a’ as shown below:

When using the syms function, the variable x is saved without the error message. When using the Symbolic Math Toolbox, the idea here is that you first define the symbolic variables. Symbolic variables are the undefined variables in an equation. For example, our symbols are a and b for our expression above. We first define these variables using the symbolic function syms .

After defining the symbols and rerunning the code above, our workspace stored our variables. We will then have:

Solving Fourier series using the Symbolic Math Toolbox

Let’s say we have a Fourier transform shown below:

The symbolic variables are t , w , T , and W , which we define by executing the command below:

w is the angle theta, T is the time function, and W is used to express the angular radians in the Fourier transform.

After the declaration of the symbolic variables, you can write the Fourier transform as shown below:

In MATLAB, int means integration. In the MATLAB expression above: exp(-t/2) is our equation which we are finding its Fourier transform. exp(-j*w*t) is the basic function of the Fourier transform. t shows that we are differentiating with respect to time. [0, inf] shows the integration limits from 0 to infinity .

Note that we don’t write f(t) when writing our equation in MATLAB. It is because we already know that our function is a time function. Also, t is a symbol variable, so we do not write it in our expression.

When the above program is executed, we get the output below:

To format this output in a user-friendly manner, we use the function pretty() . pretty(f) prints the symbolic expression f in a format that resembles type-set mathematical equations. When you execute this function in the command window, we have:

Now, we need to get the values of w since we use them to plot the Fourier transform. To do that, execute the code below:

subs mean symbolic substitution. This function replaces the symbolic variable in f with the values of w . The values range from -pi to pi . When we do this, we get the values below:

We now plot these values using the plot() function.

plot(angle(double(data_value))) gives the phase spectrum plot. The function subplot() is used to create a subplot. title() gives the plot a title.

phase spectrum

Phase spectrum plot

Now, let us plot the magnitude response using the same values of w .

The code plot(abs(double(data_values))) gives the magnitude spectrum. This plot uses the absolute values of the data, thus abs() .

magnitude spectrum

Magnitude spectrum plot

Example 2

Let’s look at another example:

example 2

The output here is:

To find the values of w , we use the subs() function.

After that, we plot the absolute values of the variable f-sub .

Range of -pi to pi

Plot for the range -pi to pi

Range of -2pi to 2pi

Plot for the range -2pi to 2pi

Range of -4pi to 4pi

Plot for the range -4pi to 4pi

Range of -8pi to 8pi

Plot for the range -8pi to 8pi

While making the plots, we used the ezplot function. ezplot(FUN) is used to plot a function x over the default domain, -2*pi<x<2*pi . As we have seen, the Symbolic Math Toolbox makes it easy to analyze the Fourier series. Moreover, it makes it easy since you do not have to write long codes.

Conclusion

Symbolic Math Toolbox is an important toolbox for solving differential and integration operations. As we have seen in solving the Fourier series above, it is easy to use. This toolbox also helps find the Laplace transform of various equations. Generally, this toolbox has a wide application in science and engineering.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *