# How can I create a symbolic vector of functions that dsolve will recognize as variable dependent functions. Need to do this in order to symbolically solve a system of ODEs.

조회 수: 3(최근 30일)
David 2013년 10월 20일
편집: David 2013년 10월 20일
I understand that to create individual time or space dependent functions, I can do the following:
syms V1(z) V2(z) V3(z) ...etc
However, I do not know in advance how many of these symbolic functions/variables I will need to create. Instead, the number of space dependent functions I will need depends on the size of a 2D square matrix that is passed to my function. Therefore, I cannot hard code the functions like I have above.
An example of what I am trying to solve:
S1 = dsolve(diff(V1(x),2) == V1(x))
S1 = dsolve(diff(V2(x),2) == V2(x))
S1 = dsolve(diff(V3(x),2) == V3(x))
S1 = dsolve(diff(V4(x),2) == V4(x))
S1 = dsolve(diff(V5(x),2) == V5(x))
I don't use the ode solver because neither do I know the boundary conditions nor do my equations vary as a function of time. Additionally, I have already tried the following:
N = 5; %Assume size of input matrix is 5x5 for illustration purposes
V = sym(zeros(1,N)); % Not necessary, just much faster
for i=1:N
V(i) = sym(sprintf('V%d(x)', i)); % some equation
end
S = dsolve(diff(V(1),2) == V(1))
However, I get this error:
Error using symengine (line 58) Could not extract differential variables to solve for. Use 'solve' or 'vpasolve' to compute the solutions of non-differential equations.
Note: I am trying to avoid vpasolve like the plague
David

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!