Parse Error when using Syms

4 visualizaciones (últimos 30 días)
Karo Gaebe
Karo Gaebe el 31 de En. de 2018
Respondida: Ayush Modi el 28 de Ag. de 2024
Hi everyone, For an assignment I have to solve a system of ODE's given the matrix DE using the Adams-Bashforth method and compare my numerical approximation to the exact one. To find the exact solution, I want to use dsolve, but every I run my code I get the error message 'Unexpected MATLAB expression' and then 'Parse Error at Y_2(t): Usage might be invalid MATLAB syntax'. I am using MATLABR2017.
Does anyone know what the issue is?
function Y_exact = exact_soln(time)
%Actual solution to the system:
A = [-20, 10, 0, 0;...
10, -20, 10, 0;...
0, 10, -20, 10;...
0, 0, 10, -20];
y_0 = ones(4,1);
syms = Y_1(x) Y_2(x) Y_3(x) Y_4(x)
Y = [Y_1; Y_2; Y_3; Y_4];
odes = diff(Y) == A*Y;
[Y_1Sol(x), Y_2Sol(x), Y_3Sol(x), Y_4Sol(x)] = dsolve(odes,y_0);
Y_exact = [double(Y_1Sol(time));...
double(Y_2Sol(time));...
double(Y_3Sol(time));...
double(Y_4Sol(time))];
end

Respuestas (1)

Ayush Modi
Ayush Modi el 28 de Ag. de 2024
Hi Karo,
Error indicates that the use of syms is incorrect as MATLAB is interpreting the line "syms = Y_1(x) Y_2(x) Y_3(x) Y_4(x)" as a expression. However, I understand you want to declare multiple symbolic variables. Here is an example code on how to declare symbolic variables:
syms Y_1(x) Y_2(x) Y_3(x) Y_4(x)
Refer to the following MathWorks documentation for more information on "syms" function and its various syntax:

Community Treasure Hunt

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

Start Hunting!

Translated by