2015-02-23 1 views
1

У меня есть функция, которую я хочу оценить как интеграл (используя функцию «интеграл», которая принимает дескриптор функции в своих аргументах), которая использует символические переменные, но я хочу создать функцию matlabFunction (анонимную функцию) с точки зрения просто одна из этих символических переменных, а остальные рассматриваются как константы.Использование matlabFunction, как я могу указать, какая переменная и какие константы?

s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)  

S = matlabFunction(s) 

S = 

@(a,g,t,v)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0) 

Но то, что я хотел бы видеть это

@(t)sqrt(v.^2+g.^2.*t.^2+g.*t.*v.*sin(a).*2.0) 

ответ

0

Здесь есть обходной путь.

Функция integral интегрирует численно функцию. Поэтому для его использования вам потребуется числовое выражение, поэтому вам нужно указать значения a, g и v.

Если вы не хотите, чтобы сделать это можно символически интегрировать уравнение s, так:

s = (g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2)  
int(s,'t') 
ans= 
(t/2 + (v*sin(a))/(2*g))*(g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (log((g^2*t^2 + 2*sin(a)*g*t*v + v^2)^(1/2) + (t*g^2 + v*sin(a)*g)/(g^2)^(1/2))*(g^2*v^2 - g^2*v^2*sin(a)^2))/(2*(g^2)^(3/2)) 

Тогда можно вычислить интеграл с помощью основной теоремы исчисления.

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

  • Нет связанных вопросов^_^