2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:20 
Аватара пользователя


13/08/13

4323
arseniiv в сообщении #1015669 писал(а):
В Mathematica вот можно всякие assumptions добавлять и прочее.

А тут нельзя?

-- 15.05.2015, 20:21 --

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

?

 Профиль  
                  
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:23 
Заслуженный участник


25/02/11
1786
Нет ли в матлабе специальной команды считать именно преобразование Фурье? Если нет, то мб никак. В мейпле и математике есть такие команды, они и с некоторыми обобщенными функциями справляются. В частности, знают, чему равно преобразование Фурье от многочленов, ступенек и т.п.

 Профиль  
                  
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:32 
Заслуженный участник


27/04/09
28128
Sicker в сообщении #1015673 писал(а):
А тут нельзя?
А откель я-то знаю? :roll: У меня ваших маткадов даже не стоит. (А assumptions — это английское слово, мн. ч. от assumption.)

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


13/08/13

4323
arseniiv в сообщении #1015682 писал(а):
У меня ваших маткадов даже не стоит.

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

 Профиль  
                  
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 20:55 
Заслуженный участник
Аватара пользователя


11/04/08
2737
Физтех
Вот это дает функцию Дирака:
Код:
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 
Заслуженный участник


27/04/09
28128

(2 Sicker.)

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

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

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


13/08/13

4323

(Оффтоп)

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 
Заслуженный участник
Аватара пользователя


11/04/08
2737
Физтех
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 
Аватара пользователя


13/08/13

4323
Все равно не дает нуля.
А вы это simplify в редакторе прописывали?

-- 15.05.2015, 21:31 --

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

 Профиль  
                  
 
 Re: Обобщенные функции в matlab
Сообщение15.05.2015, 21:31 
Заслуженный участник
Аватара пользователя


11/04/08
2737
Физтех
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 
Заслуженный участник


27/04/09
28128

(Оффтоп)

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

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


13/08/13

4323
А на такое
Код:
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 
Заслуженный участник
Аватара пользователя


11/04/08
2737
Физтех
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 
Аватара пользователя


13/08/13

4323
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 
Заслуженный участник
Аватара пользователя


11/04/08
2737
Физтех
Потому что, он сначала вычисляет интеграл, а потом применяет $k=0$. Но зачем вы так пишите? Пишите проще,
Код:
syms x k;
k = 0;
I = int(sin(2*pi*k*x),x,0,1)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.

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



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

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


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

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