与一个常数设置一阶导数等于零

32视图(30天)
nirwana
nirwana 约17小时前
编辑: Torsten 大约8小时前
我从来自方程snellius法律,我想让它的导数等于零从费马原理这么说。
matlab,我用拳头导数,但当我解决它为了得到x值dT / dT = 0时它给我奇怪的结果。是因为我把很多变量符号?实际上,b, c, v1和v2是一个常数。我应该把它数量而不是字母符号得到正确结果吗?
信谊x a b c v1 v2
T =√x。一^ ^ 2 + 2)。/ v1 +√((bx) ^ 2 + c ^ 2)。/ v2;
dTdx = diff (T)
dTdx =
费马=解决(dTdx = = 0, x)
费马=
2的评论
Dyuman Joshi
Dyuman Joshi 约16小时前
你解决与dTdx x = = 0是一个多项式,因此你是多项式的根作为输出,的变量。
“实际上,b, c, v1和v2是一个常数。我应该把它数量而不是字母符号得到正确结果吗?”
是的。如果你想要的数值解,你将不得不使用数值定义的变量。
使用双()如果你想象征性的结果转换成数值结果

登录置评。

答案(1)

马特·J
马特·J 约16小时前
编辑:马特·J 约15小时前
我应该把它数量而不是字母符号得到正确结果吗?
你应该只使用 fzero x的象征性的解决方案非常混万博 尤文图斯乱。
[a, b, c, v1、v2) =(1)交易;
有趣= @ x (x) /√x ^ 2 +。^ 2)。/ v1 - (bx)。/√(bx)。^ 2 + c。^ 2)。/ v2;
x = fzero(有趣,1)
x = 0.5000
fplot(有趣,[5,5]);yline (0);参照线(x)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!