How to fix "Error using indexing" while calculating differential equations?

syms y(t)
ode = diff(y,t) == t*y
ode(t) = 
ySol(t) = dsolve(ode)
ySol(t) = 
I copied this example straight from the MatLAB "Solve differential equations" > "First-Order Linear ODE" -example and hoped to modify it to solve my own equation, but it gives me an error message of "Error using indexing: Invalid argument at position 2. Symbolic function expected 1 input arguments but received 2.". I have no clue how to fix it, so help would be kindly appreciated.

3 件のコメント

Torsten
Torsten 2024 年 6 月 29 日
As you can see above, the example works with MATLAB R2024a. What's your MATLAB version ?
Iita
Iita 2024 年 6 月 29 日
Ah, I've got the R2023a version. I imagine an update would fix things quite efficiently :,D
Torsten
Torsten 2024 年 6 月 29 日
編集済み: Torsten 2024 年 6 月 29 日
I don't see any changes made in "dsolve" from R2023a to R2024a, but you can try.
Do you get the same error with this code ? Or does the error happen later on in your code when you try to manipulate ySol ?
syms y(t)
ode = diff(y,t) == t*y;
ySol = dsolve(ode)
ySol = 

サインインしてコメントする。

回答 (1 件)

John D'Errico
John D'Errico 2024 年 6 月 30 日
編集済み: John D'Errico 2024 年 6 月 30 日
The code you show will work perfectly in MATLAB, in literally any recent release of MATLAB. R2023 is entirely recent.
However, it is very possible that you have defined a variable named diff in your workspace. For example, let me do this:
syms y(t)
diff(t) = y(t)
diff(t) = 
ode = diff(y,t) == t*y
Error using indexing (line 249)
Invalid argument at position 2. Symbolic function expected 1 input arguments but received 2.
Do you see that I have gotten exactly the same error you were given?
Do this at the command line:
whos diff -all
And then delete the variable named diff.

製品

リリース

R2023a

質問済み:

2024 年 6 月 29 日

編集済み:

2024 年 6 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by