Интеграция Matlab и переменные

#matlab #variables #integrate

#matlab #переменные #интеграция

Вопрос:

Здравствуйте и спасибо, что прочитали это: этот вопрос касается Matlab:

Мне нужно интегрировать это выражение двух переменных

 w1=subs(diff(K,Y1),{Y1,Y2},{0.2,0.3})
  

где K определяется как функция дескриптора:

 K=@(X1,X2,Y1,Y2)...
  

итак, w1 является «функцией» двух переменных
, но Matlab говорит, что

«Неопределенная функция или метод ‘matlabfunction’ для входных аргументов типа ‘sym’ «

Если я попрошу K или w1

 which w1
  

Matlab возвращает

«w1 — это переменная»

Когда я использую dblquad, сообщение об ошибке

«Если FUN является объектом MATLAB, у него должен быть метод feval».

Я знаю, что Matlab прав, но как я могу получить (двойную) интеграцию w1 в единичном квадрате?

Я много чего перепробовал, но ничего не понимаю.

Кто-нибудь может мне помочь?

Ответ №1:

Я не совсем уверен, какие переменные в вашем коде определены как символьные, но вот минимальный пример.

Предположим, у меня есть дескриптор функции такого рода:

 x = @(t, a) t*a*a;
  

Если я определю:

 syms t a;
  

Я могу получить символическую производную при замене значения, как в вашем коде:

 f = subs(diff(x(t, a), a), a, 3);
  

Обратите внимание, что f теперь это символьная переменная. Чтобы преобразовать эту переменную в дескриптор функции, вы можете использовать matlabFunction следующим образом:

 fun = matlabFunction(f);
  

Надеюсь, это поможет.