Файл: Кафедра сау отчет по лабораторной работе 4 по дисциплине Математические пакеты в инженернотехнических расчетах тема основы символьных вычислений и операций над полиномами Вариант 8 Студент гр. 9498 Тао Сяовэй.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 95

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИСАНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)Кафедра САУОТЧЕТпо лабораторной работе № 4

по дисциплине «Математические пакеты в инженерно-технических расчетах»

ТЕМА: основы символьных вычислений и операций над полиномами

Вариант 8Студент гр. 9498 Тао СяовэйПреподаватель Илатовская Екатерина Вадимовна.Санкт-Петербург2023 г.Цель работы: получение навыков работы с символьными вычислениями и операциями с полиномами в MATLAB.

4.1. Основные сведения

Symbolic Math Toolbox позволяет пользоваться символьной математикой и вычислениями с плавающей точкой в MATLAB. Пакет включает вычислительное ядро пакета Maple V, разработанного фирмой «Waterloo Maple Software». Extended Symbolic Math Toolbox предоставляет пользователю дополнительную возможность программирования на Maple и обеспечивает доступ к специализированным библиотекам Maple.

4.2. Программа работы

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

1. Создание символьных переменных и массивов возможно двумя способами: c помощью команды sym (x = sym('x');  y = sym('y');  z = sym('z')) и с помощью команды syms (syms  a  b  c). Создайте символьную матрицу 3 × 3 и вычислите ее определитель. Создайте символьную диагональную матрицу и вычислите ее след.Код:clcsyms a b c d A=[1 a b 4;d c 12 3;a 3 5 6;b 3 4 5]det(A)Результаты бега:A =[1, a, b, 4][d, c, 12, 3][a, 3, 5, 6][b, 3, 4, 5]ans =144*b - 144*a + c + 12*d - 48*a*b + 16*a*c - a*d - 20*b*c - 3*b*d + 6*b^2*c + 48*a^2 - 9*b^2 - 5*a*b*c + 272. Существует возможность графического построения символьных функций – команда ezplot. Пример:% Область определения по умолчанию от –2*pi до 2*pi>> symst % определение символьной переменной>> f1= sin(t);>> ezplot(f1), gridКод:syms x;X=1:0.05:10;y=sin(x);ezplot(y),gridРезультаты бега:Рис 1 Результаты3. Для решения символьных конечных уравнений предназначена функция
solve. Пример:>> symsx % задание символьной переменной х>> solve('x^2+2*x–8=0') % решение квадратного уравнения>> solve('x–sin(x)–0.25=0') % решение нелинейного уравненияПри решении системы уравнений аргументы функции solve увеличиваются в соответствии с числом этих уравнений. Например:>> symsx1, x 2>> [X1,X2]=solve('x1+3*log(x1)-x2^2=0,2*x1-x1*x2-5*x1+1=0');>> simplify([X2,X1]) % для упрощения результатаКод:syms x0;solve(7*x0^3+x0^2-28*x0-4==0,x0)syms x y;[x,y]=solve(x^2+y^2-17==0,x*y+4==0);simplify([x,y])Результаты бега:ans =-2-1/72ans =[ 1, -4][ 4, -1][-4, 1][-1, 4]4. Другими типовыми функциями вычислений над символьными переменными являются:

  • вычисления предела – функция limit (табл. 4.1);

  • дифференцирование функций одной переменной — функция diff;

  • интегрирование функции одной переменной — функция int.

Таблица 4.1


Традиционное математическое действие

Команда MATLAB



limit(f(x))



limit(f(x),a)



limit(f(x),a,’left’)



limit(f(x),a,’right’)



limit(f(x),inf)
Вычислите Для нахождения n-й производной функции f(x) по переменной h необходимо записать: diff(f(x),h,n). Вычислите

.

Вычисление неопределенного интеграла функции f(x) по переменной h: int(f(x),h). Вычисление определенного интеграла функции f(x) по переменной h в пределах от a до b: int(f(x),h,a,b). Вычислите .

Код:

syms x;

y=(x+3)^2/x;

int(y,x)

int(y,x,1,8)
Результаты бега:

ans =

6*x + 9*log(x) + x^2/2

ans =

27*log(2) + 147/2

4.2.2. Операции с полиномами

1. Представление полинома р(х) = аn хn + an−1 xn−1+ ... + а2x2 + а1х + а0 в MATLAB осуществляется следующим образом: p=[ аnan-1... а2 а1 а0]. Также возможно построение многочлена по заданным корням (при помощи функции poly). Создайте два полинома пятой степени двумя способами. Для символьного отображения полинома по вектору заданных коэффициентов служит команда poly2sym:>> c=[1 2 3 4 5];>> poly2sym(c) % вектор коэффициентов может быть непосредственно введен в poly2sym:ans = 1*x^4+2*x^3+3*x^2+4*x+5.Код:p=[2 3 0 16 24];poly2sym(p)Результаты бега:ans =2*x^4 + 3*x^3 + 16*x + 24

  1. Умножение и деление полиномов осуществляются при помощи функций conv и dconv соответственно. Произведите обе эти операции над созданными полиномами. Для помощи по синтаксису функций используйте команду help.
Код:p=[2 3 0 16 24];roots(p)q=[2 0 1];conv(p,q)deconv(p,q)Результаты бега:ans =1.0000 + 1.7321i1.0000 - 1.7321i-2.0000 + 0.0000i-1.5000 + 0.0000ians =4 6 2 35 48 16 24ans =1.0000 1.5000 -0.50003. Приближение данных полиномом осуществляется с использованием функции polyfit(x, y, n), где x и y – это заданные значения аргумента и функции, n – порядок полинома. Выполните приведенный пример приближения данных полиномом третьего порядка:>> x=1:7; % заданный аргумент>> y=[15, 10, 2, 47, 23, 78, 10]; % заданная функция>> p=polyfit(x,y,3); % формирование полинома>> x2=1:0.1:7; % точки для построения полинома>> y2=polyval(p,x2); % вычисление значений функции>> plot(x,y,x2,y2) % построение результатаКод:x=1:7; y=[15, 10, 2, 47, 23, 78, 10]; p=polyfit(x,y,3);
x2=1:0.1:7; y2=polyval(p,x2); plot(x,y,x2,y2) Результаты бега:Рис 2 Результаты

4.2.3. Задание на самостоятельную работу

1. Вычислите в соответствии с вариантом:

1)



6)



2)



7)



3)

)

8)



4)

)

9)



5)



10)

)
Код:syms y xa=6^2*sqrt(1+4*x*y+x^2+3*y^2)int(a,y)Результаты бега:a =36*(x^2 + 4*x*y + 3*y^2 + 1)^(1/2)ans =36*(x/3 + y/2)*(x^2 + 4*x*y + 3*y^2 + 1)^(1/2) - 2*3^(1/2)*log((x^2 + 4*x*y + 3*y^2 + 1)^(1/2) + (3^(1/2)*(2*x + 3*y))/3)*(x^2 - 3)>> 2. Аппроксимируйте с наименьшей среднеквадратической ошибкой полиномом произвольного порядка зависимость a sin(kx)+bcos(lx) y на интервале от 0 до 2π. Значения коэффициентов возьмите из табл. 4.2.

Таблица 4.2

Коэффициенты
Номер варианта
1
2
3
4
5
6
7
8
9
10
a
1
3
2
8
5
10
9
4
6
7
b
2
4
3.5
15
3
25
1.4
7
13
29
k
1
2
3.1
2.2
0.7
2.3
4.5
2
1
0.8
l
0.5
0.6
5
8
1.5
0.2
3
1.6
5
3

Формула для вычисления среднеквадратической ошибки для двух векторов x1 и x2 длиной n:Код:syms x1 y1y1=4*sin(2*x)+7*cos(1.6*x)x=1:0.1:6y=4*sin(2*x)+7*cos(1.6*x)o=polyfit(x,y,8)x2=1:0.1:6y2=polyval(o,x2)plot(x,y,x2,y2)y3=y-y2frms=rms(y3)Результаты бега:Рис 3 Результатыfrms =0.0304Вывод: Научитесь использовать команду sym для вычисления различных функций и создания соответствующих изображений для получения результатов