如何在matlab中求方程的一阶导数

如何在matlab中求方程的一阶导数,matlab,equation,Matlab,Equation,我有一个方程:f(a,b,x)=t0-a+(a^2*(1+((x-x0)^2/b^2))^0.5 如果我想得到一阶导数:df(a,b,x)/d(a,b)对于x0,t0=常数和a,b,x=数组 如果我使用这个脚本,这是真的吗 > syms f; syms t0; syms x; syms x0; syms > a; syms b; > > > f=t0-a+(a^2*(1+((x-x0)^2/b^2)))^0.5; > f_1=diff(f,a)+diff(

我有一个方程:
f(a,b,x)=t0-a+(a^2*(1+((x-x0)^2/b^2))^0.5

如果我想得到一阶导数:
df(a,b,x)/d(a,b)
对于
x0,t0
=常数和
a,b,x
=数组

如果我使用这个脚本,这是真的吗

> syms f; syms t0; syms x; syms x0; syms
> a; syms b;
> 
> 
> f=t0-a+(a^2*(1+((x-x0)^2/b^2)))^0.5;
> f_1=diff(f,a)+diff(f,b)
我这样问是因为如果我用这种方法,我永远不会得到正确的情节。。。 有什么建议吗?

df/d(a,b)
不等于
df/da+df/db
。相反,它是
(df/da)/db

换句话说,你需要写作

f_1=diff(diff(f,a),b);
df/d(a,b)
不等于
df/da+df/db
。相反,它是
(df/da)/db

换句话说,你需要写作

f_1=diff(diff(f,a),b);