2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Matlab - как задать константу phi в символьном виде?
Сообщение30.08.2020, 19:18 


26/09/17
346
В Матлабе есть возможность использовать "встроенные" константы в символьном виде, например:
Используется синтаксис Matlab M
pi=sym(pi);
 

Мне же нужно задать в символьном виде константу phi (сверхзолотое сечение), которая в "готовом" виде в Матлабе отсутствует. Как это сделать?
P.S. Численно получаю значения, используя такую функцию:
Используется синтаксис Matlab M
function [res] = phi
% Cверхзолотое сечение
res=(2^(2/3)*(29 - 3*93^(1/2))^(1/3))/6 + (2^(2/3)*(3*93^(1/2) + 29)^(1/3))/6 + 1/3;
end

Но мне нужно иметь возможность вызывать phi именно в символьном виде.

-- 30.08.2020, 20:28 --

Ой, получилось:
Используется синтаксис Matlab M
function [res] = phi
% Cверхзолотое сечение
res=sym('(2^(2/3)*(29 - 3*93^(1/2))^(1/3))/6 + (2^(2/3)*(3*93^(1/2) + 29)^(1/3))/6 + 1/3');
end

Всем спасибо!

-- 30.08.2020, 21:00 --

Правда на этот вариант Матлаб немного ругался:
Используется синтаксис Matlab M
>> phi
Warning: Support of character vectors will be removed in a future release. Character vectors can be used only
for variable names and numbers. Instead, to create symbolic expressions first create symbolic variables using
'syms'. To evaluate character vectors and strings representing symbolic expressions, use 'str2sym'.
> In sym>convertExpression (line 1581)
  In sym>convertChar (line 1486)
  In sym>tomupad (line 1236)
  In sym (line 215)
  In phi (line 3)
 
ans =
 
(2^(2/3)*(29 - 3*93^(1/2))^(1/3))/6 + (2^(2/3)*(3*93^(1/2) + 29)^(1/3))/6 + 1/3

Поэтому в итоге, следуя подсказке Матлаба, сделал вот так:
Используется синтаксис Matlab M
function [res] = phi
% Cверхзолотое сечение
res='(2^(2/3)*(29 - 3*93^(1/2))^(1/3))/6 + (2^(2/3)*(3*93^(1/2) + 29)^(1/3))/6 + 1/3';
res=str2sym(res);
end

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

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



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

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


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

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