36421

Символьные вычисления в MatLab

Лабораторная работа

Информатика, кибернетика и программирование

Исследование скорости роста символьной функции описывающей некоторые параметры модели объекта анимированная визуализация полученной характеристики. здесь f1 имя функции х имя переменной вводится как строка в апострофах по которой производится дифференцирование n порядок производной. здесь f1_new имя функции х имя переменной вводится как строка по которой производится интегрирование. Здесь f1 имя функции переменной n порядок остаточного члена x имя переменной вводится как строка в апострофах по...

Русский

2013-09-21

357.5 KB

93 чел.

Лабораторная работа 4

Символьные вычисления в MatLab

В ходе выполнения работы будут рассмотрены следующие операции:

- Выполнить развертку и свертку аналитического выражения, выполнить символьные вычисления с рациональными дробями с заданной степенью точности.

- Выполнить дифференцировать и интегрировать аналитическое выражение.

- Разложить в ряд Тейлора функцию, заданную аналитическим выражением.

- Работа с командой funtool.

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

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

В именах функций имеет значение высота букв.

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

1. Развертка и свертка выражений.

Под разверткой понимается запись выражения в развернутой форме (с открытыми скобками). Под сверткой понимается обратное действие.

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел.

- Затем надо ввести исходную функцию  и отобразить ее в командном окне в естественном виде (команда pretty).

Например,

>> syms x a b

>> f=(sin(x)+a)^2/sqrt(abs(a+b))

f =

(sin(x)+a)^2/abs(a+b)^(1/2)

>> pretty(f)

                                            2

                                (sin(x) + a)

                                -------------

                                         1/2

                                | a + b |

>>

или 

>> f=sym('sin(x)')

f =

sin(x)

>> pretty(f)

                                   sin(x)

>>

- Далее следует выполнить операцию развертки и получить результат с именем f1_new. Для этого используется функция ехраnd(имя переменной). 

- Затем над f1_new нужно выполнить операцию свертки и получить результат с именем f1_old. Для этого используется функция simple(имя переменной). 

- Признаки правильного выполнения операций - при свертке результата развертки восстанавливается исходная функция.

Пример выполнения

f 1 (х)=(а+х)3

f2(x)=sin(x)/x

% Задача 1

% Определить символьные переменные

syms а х;

% Функция

f1=(a+x)^3

pretty(f1)

% Расширить ее

f1_new=expand(f1)

% Свернуть расширенное

f1_old=simple(f1_new)

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

>> c=sym('sqrt(2)');

>> cn=vpa(c)

 cn =

1.4142135623730950488016887242097

 

По умолчанию вычисляется 32 значащие цифры. Второй входной параметр команды vpa() служит для задания точности:

>> cn=vpa(c,70)

 cn =

1.414213562373095048801688724209698078569671875376948073176679737990732

Важно: Выходной аргумент команды vpa() является символьной переменной.

2. Дифференцирование и интегрирование выражений.

При дифференцировании выражения находится производная по выбранной переменной. При интегрировании выражения находится неопределенный интеграл (первообразная) по выбранной переменной. Константа по умолчанию - нуль.

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел).

- Затем надо ввести исходную функцию и отобразить ее в командном окне в естественном виде (команда pretty).

- Далее следует выполнить операцию дифференцирования и получить результат с именем f1_new. Для этого используется функция diff(f1,'x',n). здесь f1- имя функции, 'х' - имя переменной (вводится, как строка, в апострофах), по которой производится дифференцирование, n - порядок производной. Например,

>> P= diff('atan(x)',x,1);

>> pretty(P)

                                      1

                                   ------

                                        2

                                   1 + x

- Затем над f1_new нужно выполнить операцию интегрирования и получить результат с именем f1_old. Для этого используется функция int(f1_new,'x'). здесь f1_new - имя функции, 'х' - имя переменной (вводится, как строка), по которой производится интегрирование.

- Признаки правильного выполнения операций - при интегрировании результата дифференцирования восстанавливается исходная функция.

% Задача 2

% Определить символьные переменные

syms a x;

% Функция

f1=(a+x)^3

pretty(f1)

% Найти первую производную по х

f1_new=diff(f1,'x',1)

% Найти неопределенный интеграл по х

f1_old=int(f1_new,'x')

3. Разложение в ряд Тейлора.

Для заданного выражения находится ряд Тейлора с остаточным членом, величина которого зависит от точности, выбираемой при выполнении операции. Остаточный член отбрасывается.

- Начать надо с указания символьных переменных. Для этого применяется функция: syms перечень имен переменных через пробел

- Затем надо ввести исходную функцию.

- Далее следует выполнить операцию разложения в ряд Тейлора и получить результат с именем f1_new. Для этого используется функция taylor(f1,n,'x',a). Здесь f1 - имя функции, переменной, n - порядок остаточного члена, , 'x' - имя переменной (вводится, как строка, в апострофах), по которой производится разложение, а - значение переменной, для которого делается разложение (если оно пропускается, то предполагается а=0).

- Затем над f1_new нужно выполнить операцию свертки и получить результат с именем f1_old. Для этого используется функция simple(имя переменной).

- Признаки правильного выполнения операции - в окрестности точки а графики исходной и полученной функций совпадают.

- Для построения графиков символьных функций имеется процедура ezplot(f2,-h,h);grid on. Здесь f2 - имя символьной функции, (-h h) - нижний и верхний предел значений аргумента, grid on – включает в графике координатную сетку. В заголовок графического окна помещается описание функции. По этой причине в одно графическое окно можно вывести только один график.

% Задача З

% Определить символьные переменные

syms x;

% Функция

f2=sin(x)/x

% Найти разложение Тейлора по х в точке О

f2_new=taylor(f2,5,'x',0)

% Диапазон просмотра

п=4;

% График f2

figure(1);

ezplot(f2,-h,h);grid on

% График f2_new

figure(2);

ezplot(f2_new,-h,h);grid on

4. Оболочка  funtool

 Для работы с символьными функциями предусмотрена функция оболочка - funtool. Она представляет собой интерактивный графический калькулятор, позволяющий быстро построить две функции одной переменной f(x) и g(х). выводятся три автономных окна: два графических и управляющее.

Графики отображаются в отдельных окнах с заголовками.

Управляющее окно содержит:

- Два поля ввода функций.

- Поле ввода пределов переменной х в формате [min.max].

- Поле ввода масштабирующего коэффициента а.

Управление осуществляется кнопками, сгруппированными в 4 ряда:

- Первый - тип символьного преобразования f(x).

- Второй - тип масштабирования f(x): f+a, f-a, f*a, f/a, f^a, f(x+a), f(x*a).

- Третий - тип замены f(x) на комбинацию f(x) и g(x).

- Четвертый - управляющие операции:

—>  Insert - ввести f(x) в библиотеку встроенных функций,

—> Cycle - циклически вызвать f(x) из библиотеки встроенных функций,

—>  Delete - удалить f(x) из библиотеки встроенных функций,

—> Reset - установить утилиту в исходное состояние,

—> Help - вызов справки.

—> Demo - демонстрация использования,

—> Close - закрыть.

Работа с функцией f1 (x)

Работа с функцией f2(x)

Внимание: funtool использует средства символьной математики. Поэтому при вычислении sin(x)/x неопределенность при х=0 раскрывается. Отрабатываются также бесконечно большие значения.

5. Исследование скорости роста символьной функции, описывающей некоторые параметры модели объекта

Построение математической модели для исследования указанной  задачи состоит  в построении касательной функции в некоторой точке X0, затем создания анимации процесса  построения касательной в точках диапазона [X0-1,X0+1].

Алгоритм, реализующий решение поставленной задачи, включает следующие шаги:

1. Определение символьной функции по входной строковой переменной при помощи sym.

2. Нахождение производной в символьном виде.

3. Формирование символьного выражения для касательной.

4. Построение графика символьной функции на некотором интервале [X0-1,X0+1] с шагом 0.1.

5. Построение движущейся точки касания и графика касательной в этой точке.

 Рекомендации по выполнению задания:

A. Следует создать файл-функцию tangent1(‘x^2’,0), возвращающую символьную строку yt, которая содержит символьную запись уравнения производной в некоторой точке X0.

1. В создаваемую файл-функцию tangent1 следует передать в качестве параметра f1 - строку символов, содержащую запись исследуемой функции (см. вариант) и в качестве параметра Х0 - некоторое значение переменной х,  для которого необходимо построить касательную.

1. Для вычисления значения Y0 символьной функции f10, соответствующей строке f1, в точке X0 следует использовать:

sym x

f10=sym(f1);

Y0=subs(f10,’x’,X0);

2. Для символьного задания уравнения касательной следует использовать уравнение прямой, проходящей через точку (x0,y0), и команду sym

>> yt=sym('y0+k*(x-x0)')

yt =

y0+k*(x-x0)

3. Для вычисления коэффициента K наклона касательной следует продифференцировать исходное уравнение и найти его значение в точке X0, используя команды

 f11=diff(f10,’x’,1);

и  K = subs(f11,’x’,X0);

4. Последовательно подставить значения коэффициента k и координат точки x0, y0

>> K=3;  %K – необходимо вычислить на предыдущем шаге

>>   %K=3 выбрано в качестве примера

>> yt=subs(yt,'k',K)

yt =

y0+3*x-3*x0

>> yt=subs(yt,'x0',X0);

>> yt=subs(yt,'y0',Y0);

В.  Построение анимации движения касательной

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

% анимациz

% последовательного построения касательной к графику

% функции y=x^2 в точках x0 от -1 до 1

% h3 – дескриптор, используемый для анимации движения точки касания

% h1 – дескриптор, используемый для анимации положения касательной

clear;

x=[-1:0.1:1];        % интервал изменения переменной х с шагом 0.1

% для построения графика кривой

x1=[-1.5:0.1:1.5]; % интервал изменения переменной х с шагом 0.1

% для построения отрезка касательной

% задать дескриптор точки касаниz

x0=x(1);

y0=x0*x0;        % в лаб. работе

% y0 вычисляется на основе символьной функции

h3=line(x0,y0);

set(h3,'Marker','o');

set(h3,'color','b');

set(h3,'EraseMode','xor');

% задать дескриптор графика функции y=x^2

y2=x.*x;  % в лаб. работе

% y2 вычисляется на основе символьной функции

% команды subs и вектора х

h2=line(x,y2);

set(h2,'color','r');

% задать дескриптор уравнениz касательной в точке (x0,y0)

y1=y0+2*x0*(x1-x0);

h1=line(x1,y1);

set(h1,'color','g');

set(h1,'EraseMode','xor');     %'background');

% зададим диапазон изменениz переменных вдоль осей Х и Y

axis([-2 2 -1 4]);

axis manual;

% принудительный вывод графиков, заданных дескрипторами

pause(0.1);

k=length(x);

% бесконечная анимация, завершить - Ctrl+C

while 1

   for i=1:k

       x0=x(i);

       y0=x0*x0;        % в лаб. работе

% y0 вычисляется на основе символьной функции

       y1=y0+2*x0*(x1-x0);   % 2*x0 – это коэффициент наклона касательной

% для функции x^2

    % в лаб. работе для нахождения y1 надо

% использовать символьную функцию, записанную в строку yt 

% команду subs и вектор х1

% yt – здесь находится для каждой точки х0

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

       set(h3,'XData',x0,'YData',y0);

       set(h1,'XData',x1,'YData',y1);

       pause(0.1);

   end

end

В результате, например, необходимо получить анимацию построения следующих графиков

Задания лабораторной работы

1. Выполнить развертку и свертку аналитического выражения.

Ввести выражение f1 (x).

Вывести в командное окно выражение f1 (x) в естественном виде (команда pretty).

Развернуть выражение f1 (x).

Полученное выражение свернуть.

Сравнить результат c f1(x).

2. Выполнить дифференцирование и интегрирование аналитическое выражение.

Ввести выражение f1 (x) и найти производную по х.

Вывести в командное окно выражение f1 (x) в естественном виде (команда pretty).

Для полученного выражения найти неопределенный интеграл.

Сравнить с f1 (x).

3. Разложить в ряд Тейлора функцию, заданную аналитическим выражением.

Ввести выражение f2(x) и найти его разложение в ряд Тейлора.

Построить XY график для f2(x) и его разложения в ряд Тейлора F2(x).

4. Работа с командой funtool

Задать функцию f1 и выполнить с ней операции задачи 2.

Задать функцию f2 и выполнить с ней операцию символьного дифференцирования.

5. Исследование скорости роста символьной функции, описывающей некоторые параметры модели объекта в точке X0=0  и в диапазоне [X0-1,X0+1].

Необходимо написать следующие файл-функции:

а) файл-функция, входными аргументами которой являются:

-  строка с символьным представлением функции f1(x) одной переменной х,

- числовое значение абсциссы точки, в которой следует провести касательную.

б) файл-функция анимации процесса построения касательной в точках диапазона

[X0-1,X0+1].

Варианты:

Для всех вариантов: a=4, b=5.

f1(x)

f2(x)

1

(1+x)2

ax3+bx2+cx+d

2

(1-х)2

sin(ax)

3

(а+х)2

cos(ax)

4

(а-х)2

sec(x)

5

(1+х)3

exp(ax)

6

(1-х)3

x(ln(x)-1)

7

(а+х)3

-csec(x)

8

(а-х)З

1/(1+x2)

9

(1+x)4

1/(a+bx)

10

(1-х)4

1/(1-x2)

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

84092. Форма правления: понятие и виды 16.75 KB
  Форма правления представляет собой структуру высших органов государственной власти порядок их образование и распределение компетенции между ними. Форма государственного правления дает возможность уяснить: как создаются высшие органы государства и какого их строение; как строятся взаимоотношения между высшими и другими государственными органами; как строятся взаимоотношения между верховной государственной властью и населением страны; в какой мере организация высших органов государства позволяет обеспечивать права и свободы...
84093. Унитарное государство признаки и виды 20.55 KB
  Унитарное государство характеризуется следующими признаками: унитарное устройство предполагает единые общие для всей страны высшие исполнительные представительные и судебные органы которые осуществляют верховное руководство соответствующими органами; на территории унитарного государства действует одна конституция единая система законодательства одно гражданство; составные части унитарного государства области департаменты округа провинции графства государственным суверенитетом не обладают; унитарное государство на территории...
84094. Федерация: понятие и признаки, виды 23.76 KB
  Существуют следующие формы государственного устройства: 1 Унитарное государство 2 Федеративное государство 3 Конфедеративное на данный момент не существует в природе 4 Региональное государство Федеративное государство представляет собой добровольное объединение ранее самостоятельных государственных образований в одно союзное государство государство состоящее из государств членов или государственных образований субъектов федерации. На данный момент в мире насчитывается 24ре федерации. Федерации бывают: а Договорные и...
84095. Форма государственного устройства: понятие и виды 21.73 KB
  Территория федерации состоит из территорий ее отдельных субъектов: штатов кантов земель республик и т. Субъекты федерации имеют право принятия собственной конституции имеют свои высшие исполнительные законодательные и судебные органы 4. В большинстве федерации существует союзное гражданство и гражданство федеральных единиц. При федеральном государственном устройстве в парламенте имеется палата представляющая интересы членов федерации.
84096. Демократический режим и его признакии 22.3 KB
  В демократическом государстве существует взаимная ответственность государства и личности.Предоставление широкой свободы личности предприятиям и организациям в сфере экономической деятельности которая при демократическом политическом режиме составляет основу материального благосостояния граждан.Реальная гарантированность прав и свобод личности и реальная возможность реализовать данные права и свободы.Наличие эффективной и квалифицированной судебной защиты прав и свобод личности от произвола и беззакония со стороны кого бы то ни было.
84097. Антидемократические государственно-правовые режимы 25.92 KB
  Основными чертами тоталитарного политического режима являются следующие: государство стремится к глобальному господству над всеми сферами общественной жизни к всеохватывающей власти; общество полностью отчуждено от политической власти но оно не осознает этого ибо в политическом сознании формируется представление о единстве слиянии власти и народа; господствует монопольный контроль над экономикой средствами массовой информации культурой религией и т. фактически устраняется плюрализм; происходит централизация государственной...
84098. Функции государства: понятие, признаки, содержание 20.68 KB
  Функции государства это основные направления внутренней и внешней деятельности государства в которых выражаются и конкретизируются его классовая и общечеловеческая сущность и социальное назначение. В этом определении выделены наиболее существенные признаки функций государства. Функции государства непосредственно выражают и предметно конкретизируют его классовую и общечеловеческую сущность.
84099. Внутренние функции государства современного государства и их содержание 22.02 KB
  Охранительная функция: Это функция государственной деятельности проявляется в обеспечении государством общественного и правового порядка защите и охране прав и интересов граждан и организаций защите конституционного строя и государства от противоправных посягательств. Обеспечение внутреннего мира и согласия в обществе урегулирования общественных отношений снятие социальных противоречий неизбежных в обществе состоящем из различных классов групп слоев это насущная необходимость одна из тех причин которые вызывали возникновение...
84100. Внешние функции государства современного государства и их содержание 23.61 KB
  Защита государства от вооруженных нападений других государств. Функция защиты из вне: Данная функция является важнейшим направлением деятельности государства ибо она нацелена на защиту мирного труда суверенитета и территориальной целостности государства. 30 Формы и методы осуществления функций государства Государство должно выполнять свои функции в присущих ему формах применять в своей деятельности различные методы.