2014-10-30 3 views
1

Я хочу использовать функцию в качестве переменной интегрирования, например, при оценке интеграла по:функции как переменная интегрирования

е^(соз (х)) F (sin (х)) DCOS (х)

, в котором f (x) - произвольная функция.

Как изменить переменную интеграции, такую, что я интегрирую по dcos (x) вместо dx (по умолчанию)?

РЕДАКТИРОВАТЬ:

При оценке интеграл, такие как * х + б, можно оценить его следующим образом:

def f(x,a,b): 
    return a*x+b 

    print quadrature(f,0,1,args=(2,3)) 

В этом примере переменная интегрирования дх, но теперь я хочу изменить переменную интегрирования на функцию, такую ​​как x ** 2 (я знаю, что это можно решить аналитически, но я хочу применить ее так, чтобы функция, которая не аналитически разрешима.), или cos (x).

+0

Просьба проверить http://stackoverflow.com/help/mcve и опубликовать некоторые конкретные сведения об этой проблеме ... – Aditya

+0

Я просто не понимаю ни одного слова вашего вопроса. Не у всех здесь есть степень математики, которую вы знаете, некоторые из нас просто программисты ... –

+0

Извините, я изменил ее на более понятный язык. Но я думаю, что на вопрос ответит тот, кто, по крайней мере, понимает первую часть, поскольку это первый год университетского исчисления. – johnbaltis

ответ

1

Вы, кажется, спрашиваете, как сделать переменные интеграции numpy/scipy для вас. Это вообще требует символического вычисления (в вашем примере: вам нужно использовать соотношение между синусом и косинусом), а scipy этого не имеет.

Ваш лучший выбор - выработать преобразование переменных бумажным и карандашом, записать итоговый интеграл и использовать scipy для оценки этого.

Если вы ищете символические вычислительные инструменты на земле python, посмотрите на sympy.

EDIT: конечно, вы всегда можете попробовать свои функции на сетке x, использование интерполяции для построения неявной функции и интегрировать, что [в вашем примере: образец f(x) и cos(x) на сетке x, интерполировать f против x и x vs cos(x)]. Возможно, ваша конкретная проблема такова, что на самом деле это стоит того, поэтому YMMV.

+0

Я не ищу символическое вычисление, потому что этого не существует для этой конкретной проблемы, поэтому работать с ней вручную тоже не удастся. – johnbaltis

+0

это не меняет ответ на вопрос, может ли scipy изменить переменные интеграции для вас: он не может. –

+0

Возможно, это невозможно, но эта проблема должна быть численно разрешимой, это было сделано в литературе много раз, но, к сожалению, они никогда не указывают их методы. – johnbaltis

Смежные вопросы