Symbolic Toolbox, implicit function as implicit function argument.
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I'm working on small project for my studies - magnetic levitation system.
I wanted to check if my linearization calculations were correct. In order to do that I wanted to use Symbolic Toolbox, therefore I need to define:
- t - time,
- z(t) - position (time-dependant),
- L(z(t)) - inductance of coil, which depends on the position of a levitating object
In following lines I'll try to explain what is incomprehensible to me. I will declare syms objects and validate them with following formula:
I imagine I should write script as follows:
%(1)
syms t
syms z(t)
syms L(z(t))
But it results in error: Invalid variable name.
Next I've written script:
%(2)
syms t
syms z(t)
syms L(z)
diff(L,t)
Script results in t being sym object. After 2nd line z is being defined as symfun object, but 3rd line: syms L(z); overrides z(t) as z, thus at the end of script z is a sym object. Result of the script is 0, therefore it's not a good way to define "my symbols".
After some random coding I've came up with:
%(3)
syms t
syms z(t)
syms L(t)
L = L(z);
diff(L,t)
Result of the (pretty) script is:
d
L'(z(t)) -- z(t)
dt
Which I interpretate as...:
L'(z(t)) = dL(z(t)) / dz(t)
This result is compatible with:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247602/image.png)
And I assume that code (3) is correct. My question is: why? Is it the only way to define such a function in Symbolic Toolbox? Moreover - is it a correct way?
0 个评论
回答(1 个)
Charan Jadigam
2020-3-18
Hi,
I feel that you need to find chain rule using symbolic variables and it could be done in 2 other ways.
First method,
syms t z(t) L
L=str2sym('l(z(t))');
diff(L,t)
Second method,
syms t z(t) L(z)
L = L(z);
diff(L,t)
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!