#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);
Надеюсь, это поможет.