Не удается перенести значения переменных в dsolve?

#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 переменных, как я должен писать?