2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Matlab: как вытащить коэффициенты из символьной переменной?
Сообщение07.12.2020, 20:52 


26/09/17
346
Получаем символьную переменную (полином):
Используется синтаксис Matlab M
k=2;
p=expand(sym((x^3 - x^2 - 2*x - 1)^k));  % указываем полином
pEx=(-1)*p
 

Теперь нужно получить вектор, компоненты которого равны коэффициентам полинома $pEx$.
Как это сделать?

P.S. Бывает, что коэффициент при некоторых $x$ равен 0 - в таких случаях количество членов в символьном выражении не совпадает с размером вектора коэффициентов.

 Профиль  
                  
 
 Re: Matlab: как вытащить коэффициенты из символьной переменной?
Сообщение07.12.2020, 21:45 
Заслуженный участник


12/07/07
4529
Уже вроде было.
Используется синтаксис Matlab M
>> k=2;
>> syms x;
>> p=expand(sym((x^3 - x^2 - 2*x - 1)^k));  % указываем полином
>> pEx=(-1)*p;
>> coeffs(pEx)
ans = [ -1, -4, -6, -2, 3, 2, -1]


-- Mon 07.12.2020 20:49:00 --

See also sym/sym2poly

 Профиль  
                  
 
 Re: Matlab: как вытащить коэффициенты из символьной переменной?
Сообщение07.12.2020, 22:06 


26/09/17
346
Это решение дает неверный результат если при некоторых $x$ коэффициенты равны 0 - вектор коэффициентов имеет меньший размер, чем нужно (пропущены именно нулевые коэффициенты).

 Профиль  
                  
 
 Re: Matlab: как вытащить коэффициенты из символьной переменной?
Сообщение07.12.2020, 22:09 
Заслуженный участник


12/07/07
4529
maximkarimov в сообщении #1495634 писал(а):
P.S. Бывает, что коэффициент при некоторых $x$ равен 0 - в таких случаях количество членов в символьном выражении не совпадает с размером вектора коэффициентов.
GAA в сообщении #1495649 писал(а):
See also sym/sym2poly
maximkarimov в сообщении #1495650 писал(а):
Это решение дает неверный результат если при некоторых $x$ коэффициенты равны 0 - вектор коэффициентов имеет меньший размер, чем нужно (пропущены именно нулевые коэффициенты).
Используется синтаксис Matlab M
>> p = x^3 +x+1;
>> sym2poly(p)
ans =  1     0     1     1

 Профиль  
                  
 
 Re: Matlab: как вытащить коэффициенты из символьной переменной?
Сообщение07.12.2020, 22:21 


26/09/17
346
Спасибо огромное!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group