Parse Error when using Syms

4 次查看(过去 30 天)
Karo Gaebe
Karo Gaebe 2018-1-31
回答: Ayush Modi 2024-8-28
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

回答(1 个)

Ayush Modi
Ayush Modi 2024-8-28
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:

类别

Help CenterFile Exchange 中查找有关 Equation Solving 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by