Mathematica Why Does DSolve Work with s[x] but Not y[x] in Mathematica?

AI Thread Summary
The discussion centers on the issue of using DSolve in Mathematica with the variable y[x], which leads to an error due to y[x] potentially being assigned a value earlier in the session. Users suggest that while Clear[y] removes function definitions, it does not effectively clear y[x], and Clear[y[x]] fails as y[x] is not treated as a symbol. The conversation highlights the use of the Remove function as a potential solution for completely eliminating variable definitions. Additionally, some users experienced inconsistencies, where the same command worked in a different document or after restarting Mathematica. The thread emphasizes the importance of understanding variable management in Mathematica for successful equation solving.
Shinaolord
Messages
92
Reaction score
4
So when i use the following command, I get the following error
DSolve[y'[x] - y[x] == 3, y[x], x]
DSolve::deqn: Equation or list of equations expected instead of False in the first argument False. >>

But when i change the variable y[x] and y'[x] to s[x] and s'[x], It works
why is this?
In[185]:= DSolve[s'[x] - s[x] == 3, s[x], x]

Out[185]= {{s[x] -> -3 + E^x C[1]}}
 
Physics news on Phys.org
Most likely y[x] has been given some value earlier.
 
I tried clearing it with clear all and clear [f,y,x] but it still doesn't work. I think it's strange, maybe y didn clear properly?
 
Clear[y] won't clear y[x]. Try Clear[y[x]].
 
Clear[y] does remove function definitions and Clear[y[x]] fails.

Code:
In[1]:= y[x_] := 3 x

In[2]:= ?y

Out[2]= Global`y
Out[2]= y[x_]:=3 x

In[3]:= Clear[y]

In[4]:= ?y

Out[4]= Global`y

In[5]:= y[x] := 3 x

In[6]:= Clear[y[x]]

Clear::ssym: y[x] is not a symbol or a string. >>

As the IT Guy says, "Have you tried turning it off and turning it back on again" (possibly trying a ?y before anything else and then just entering that DSolve line and nothing else)?
 
Bill Simpson said:
Clear[y] does remove function definitions and Clear[y[x]] fails.

You're right, I'm wrong. Apologies for the mis-information.
 
Bill Simpson said:
Clear[y] does remove function definitions and Clear[y[x]] fails.

Code:
In[3]:= Clear[y]

In[4]:= ?y

Out[4]= Global`y[/QUOTE]
Clear clearly didn't work quite as advertised there. clear[y] puts y in limbo rather than removing it. Remove might be better here than clear.
 
Code:
In[1]:= y[x_] := E^x

In[2]:= DSolve[y'[x] == y[x], y[x], x]

Out[2]= During evaluation of In[2]:= DSolve::dsfun: E^x cannot be used as a function. >>
Out[2]= DSolve[True, E^x, x]

In[3]:= Clear[y]

In[4]:= DSolve[y'[x] == y[x], y[x], x]

Out[4]= {{y[x] -> E^x C[1]}}
 
I've always wanted to see a great example where Clear wasn't enough and Remove was necessary, not just some weird trick, but really interesting use that could be learned from and applied in useful ways in the future.
 
  • #10
Ah, I didn't know there was a remove function! Hopefully that works, I'll try it momentarily. And yes, I restarted Mathematica several times and it persisted.

I tried it in the document where it wasn't working, and it didn't work. However i downlaoded another copy of the assignment and it worked with y[x]! Strange.
 
Last edited:

Similar threads

Replies
1
Views
2K
Replies
2
Views
2K
Replies
1
Views
2K
Replies
1
Views
2K
Replies
4
Views
2K
Replies
13
Views
2K
Replies
7
Views
6K
Replies
3
Views
5K
Replies
2
Views
2K
Back
Top