#matlab #dsolve
#matlab #dsolve
Вопрос:
У меня есть один вопрос в matlab:
Я получаю значение c из другой функции, затем я хочу поместить значение c 1 в dsolve для решения этого дифференциального уравнения. но значение не может быть помещено в dsolve, что мне делать для передачи значения? например:
c = 1;
u = dsolve('Du = 1 u^c','t') % c is c, but is not 1!
Комментарии:
1. опубликуйте свой код, пожалуйста
2. c = 1; u = dsolve(‘Du = 1 u ^ c’,’t’)
Ответ №1:
Причина вашей ошибки в том, что при использовании 'c'
c
интерпретируется как символ (или строка), а не переменная. Что вы могли бы сделать, так это использовать num2str
для объединения строк и переменных, например:
u = dsolve(['Du = 1 u^' num2str(c)],'t') % c is c, but is not 1!
u =
C16*exp(t) - 1
Если у вас есть несколько переменных, вы можете сделать что-то вроде этого:
u = dsolve(['Du = ' num2str(1/(m*n)) '*1 u^' num2str(c)])
u =
C16*exp(t) - 1
Комментарии:
1. Спасибо. но меня смущает формат, если у меня более 1 переменной, такой как u = u = dsolve (‘Du m n = 1 u ^ c’, ‘t’) и m, n, c переменных, как я должен писать?