2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3  След.
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:20 
Аватара пользователя
arseniiv в сообщении #1015669 писал(а):
В Mathematica вот можно всякие assumptions добавлять и прочее.

А тут нельзя?

-- 15.05.2015, 20:21 --

И че такое
arseniiv в сообщении #1015669 писал(а):
assumptions

?

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:23 
Нет ли в матлабе специальной команды считать именно преобразование Фурье? Если нет, то мб никак. В мейпле и математике есть такие команды, они и с некоторыми обобщенными функциями справляются. В частности, знают, чему равно преобразование Фурье от многочленов, ступенек и т.п.

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:32 
Sicker в сообщении #1015673 писал(а):
А тут нельзя?
А откель я-то знаю? :roll: У меня ваших маткадов даже не стоит. (А assumptions — это английское слово, мн. ч. от assumption.)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:46 
Аватара пользователя
arseniiv в сообщении #1015682 писал(а):
У меня ваших маткадов даже не стоит.

матлабов :mrgreen: А чем вы пользуетесь? У меня еще мэпл есть :-)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:55 
Аватара пользователя
Вот это дает функцию Дирака:
Код:
syms x k;
fourier(1, x, k);

Кстати, интегрирование в смысле главного значение делается так:
Код:
int(1/x,-inf,+inf,'PrincipalValue', true)

Предположения насчет значений переменных задаются с помощью функций assume и assumeAlso. Вот несколько примеров:
Код:
assume(k,'integer')
assumeAlso(k > 0)
assume(x ~= 0)
assume(x^2 - 1 > 0)
assume(x^2+y^2 == 1)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:01 

(2 Sicker.)

Sicker в сообщении #1015685 писал(а):
матлабов :mrgreen:
Ой, pardon. Главное, смотрел на название темы, и всё равно списал не то.

Sicker в сообщении #1015685 писал(а):
А чем вы пользуетесь?
Mathematic’ой же. :-)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:05 
Аватара пользователя

(Оффтоп)

arseniiv в сообщении #1015688 писал(а):
Mathematic’ой же. :-)

Она лучше? :roll:


-- 15.05.2015, 21:09 --

ShMaxG
Спасибо :-)

-- 15.05.2015, 21:13 --

ShMaxG
У меня че-то на такое выдает обычный интеграл, а не ноль
Код:
syms x ;
assume(k,'integer')
assume(k>0)
int(sin(2*pi*k*x),x,0,1)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:18 
Аватара пользователя
Sicker
Сначала вы задали
Код:
assume(k,'integer')
Когда вы задаете
Код:
assume(k>0)
то все предыдущие предположения насчет $k$ стираются и остается только требование неотрицательности. Чтобы добавлять требования, используйте функцию assumeAlso. Итого получится
Код:
syms x ;
assume(k,'integer')
assumeAlso(k>0)
int(sin(2*pi*k*x),x,0,1)

Результатом у меня все равно является некое выражение. Если применить дополнительно функцию simplify, т.е.
Код:
simplify(ans)
то получится 0.

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:29 
Аватара пользователя
Все равно не дает нуля.
А вы это simplify в редакторе прописывали?

-- 15.05.2015, 21:31 --

Ой, все работает(не там Also написал :mrgreen: )

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:31 
Аватара пользователя
Sicker в сообщении #1015705 писал(а):
А вы это simplify в редакторе прописывали?
Нет, в Command Window. Ну или так тогда
Код:
syms x k;
assume(k,'integer')
assumeAlso(k>0)
I = int(sin(2*pi*k*x),x,0,1);
I = simplify(I)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:33 

(Оффтоп)

Sicker в сообщении #1015690 писал(а):
Она лучше? :roll:
Ещё один странный вопрос — нецелесообразно ожидать от того, кто не пользуется матлабом, компетентного сравнения матлаба с чем-нибудь. Да, иногда такое частичное косвенное знакомство бывает без прямого, но насколько часто?

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:34 
Аватара пользователя
А на такое
Код:
assume(k=0)
он мне выдает ошибку
The expression to the left of the equals sign is not a valid target for an assignment.

-- 15.05.2015, 21:36 --

ааа надо двойное равно поставить :-)

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:37 
Аватара пользователя
Sicker
Кстати, на будущее, обратите внимание как удаляются предположения.

Допустим, сейчас вы хотите, чтобы $k$ было целым и положительным. Поэтому вы пишете
Код:
syms k;
assume(k,'integer');
assumeAlso(k>0)
и используете это где-то. Если вы переменную $k$ удалите
Код:
clear k
то в памяти ее не будет. Однако, когда восстановите
Код:
syms k
то можете обнаружить, что предположения остались, т.е.
Код:
assumptions(k)
выдаст, что $k$ является целым и положительным. Для того, чтобы избавляться от предположений, пишите
Код:
syms k clear
Эта команда оставит переменную $k$ в памяти, но удалит все предположения касательно нее.

Sicker
Запись
Код:
assume(k=0)
неграмотная, так как "=" означает присваивание, а не равенство. Для установления равенства используйте "==", т.е.
Код:
assume(k==0)


А вообще, почитайте уже справку!

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:41 
Аватара пользователя
ShMaxG
А почему он мне деление на ноль выдает?
Код:
syms x k;

assume(k==0)
I = int(sin(2*pi*k*x),x,0,1)


-- 15.05.2015, 21:43 --

ShMaxG
Спасибо, я как раз наткнулся на такое хитрожопое вылазиние предположений, пришлось в новом окне делать :mrgreen:
А я понял что ему не нравится, он просто не умеет пределы брать :lol1:

 
 
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:44 
Аватара пользователя
Потому что, он сначала вычисляет интеграл, а потом применяет $k=0$. Но зачем вы так пишите? Пишите проще,
Код:
syms x k;
k = 0;
I = int(sin(2*pi*k*x),x,0,1)

 
 
 [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group