matlab已知两数组y、x,如何y对x求导

2021-01-11 18:42:50 字数 3086 阅读 9209

1楼:幽居古藤

syms t;

a=[t^3 t^2;3*t^3 4*t^2];

a1=diff(a)

有这样的对矩阵求导,你说的,那个对已知的两个矩阵求导,还没有见过

matlab如何 对数组求导?

2楼:匿名用户

本来不想说的。

你的前几个数据的y是相同的,也就是说是它们的数值导数肯定为零。但不意味着这些点都是极值点,这些绝对是你的数据精度的问题。

解析式比数值的优势,我觉得就是“精度”,解析式能求出任何一点的值,而数值只是有限的几个点是己知的,根据这些去猜测(也就是插值)出其它点的值(这些值跟真值应当有一些出入)

data=[

1.04 0

1.12 0

1.2 0

1.28 0

1.36 0

1.44 0

1.52 0

1.6 0

1.68 0

1.76 0

1.84 0

1.92 0

2 52.08 69

2.16 408

2.24 1148

2.32 1963

2.4 2074

2.48 1436

2.56 689

2.64 287

2.72 80

2.8 27

2.88 4

2.96 2

3.04 0

3.12 7

3.2 14

3.28 61

3.36 158

3.44 330

3.52 724

3.6 1367

3.68 2332

3.76 3411

3.84 4054

];x=data(:,1)';

y=data(:,2)';

plot(x,y)

dydx=diff(y)./diff(x); %这个是数值导数

x(find(dydx==0)) %直接数值导数为0的x的值,但是你无法得到中间那个峰的值。

x(dydx(1:end-1).*dydx(2:end)<0) %导数值跨过0的值,这个应当是你想要的

3楼:逆心小土豆

你看看:

syms x1 x2 x3

f = x1^2+x2^2+x3^2;

fx1 = diff(f,x1);

fx2 = diff(f,x2);

fx3 = diff(f,x3);

x11 = input('请输入整数x1:');

x22 = input('请输入整数x2:');

x33 = input('请输入整数x3:');

subs(fx1,x1,x11)

subs(fx2,x2,x22)

subs(fx3,x3,x33)

输出的subs就是赋值之后的每一个偏导的结果,你可以试着运行一下。

diff默认对x求导,如果有好几个x,则默认对x1求导,默认求一介导。

4楼:匿名用户

方法:1. 矩阵y对标量x求导:

y = [y(ij)]d y/dx = [dy(ji)/dx]2. 标量y对列向量x求导:

y = f(x1,x2,..,xn) dy/dx= (dy/dx1,dy/dx2,..,dy/dxn)'

3. 行向量y'对列向量x求导:

y的每一列对x求偏导,各列构成一个矩阵。

4. 列向量y对行向量x’求导:

转化为行向量y’列向量x的导数转置。

5. 向量积对列向量x求导运算法则:

d(uv')/dx =(du/dx)v' + u(dv'/dx)d(u'v)/dx =(du'/dx)v + (dv'/dx)u'

6. 矩阵y对列向量x求导:

y对x的分量求偏导,构成超向量。

7. 矩阵积对列向量求导法则:

d(uv)/dx =(du/dx)v + u(dv/dx)d(uv)/dx =(du/dx)v + u(dv/dx)8. 标量y对矩阵x的导数:

把y对每个x的元素求偏导,不用转置。

dy/dx = [dy/dx(ij) ]

9. 矩阵y对矩阵x的导数:

将y的每个元素对x求导,然后排在一起形成超级矩阵。

10.乘积的导数

d(f*g)/dx=(df'/dx)g+(dg/dx)f'

5楼:匿名用户

这个问题我给你分析一下,首先你的想法看起来是对的,但其实不是很正确。

对于离散的数据点,使用求导的方法寻找极值,你会发现找不到导数为零的地方的。原因是离散点求导就是做差分。

寻找极值的方法应该是:一维搜索的方法

就是一个一个的查询数组,看在哪个点处的数比它前后的数都大。

6楼:匿名用户

求导 函数为 diff()

如>> syms x;

>> y=x^2+x

y =x^2 + x

>> s=diff(y)

s =2*x + 1

7楼:匿名用户

题目错了爸!!!!!!!

matlab中矩阵在x,y两个方向求导

8楼:匿名用户

建议用gradient  可以矩阵求导。

1。如果f是一维矩阵,则fx=gradient(f,h)返回f的一维数值梯度。h是f中相邻两点间的间距。

2。如果f是二维矩阵,返回f的二维数值梯度。

[fx,fy]=gradient(f,hx,hy)。hx,hy参数表示各方向相邻两点的距离。

3。如果f是三维矩阵,返回f的三维数值梯度。

[fx,fy,fz]=gradient(f,hx,hy,hz)。

hx,hy,hz参数表示各方向相邻两点的距离。

9楼:郗晚竹长衣

\是matlab里面的左除。用来求(以你问题为例)x*a=y这个线性方程组的(最小二乘)解。

当然你这个方程比较奇怪,未知数为a,方程系数存在x矩阵里面

已知实数x,y满足y x x+2y 4 y-2,且(x

1楼 随缘 实数x y满足 y x x 2y 4 y 2 满足条件的 动点p x y 构成的 区域为三角形及其内部,端点 a 4 3 4 3 b 2 2 c 7 2 记点 1 1 为d 那么 x 1 2 y 1 2 pd 2 pd max cd 73 cd min od 2 x 1 2 y 1 2的...

已知x+y-5,xy 3求根号(x y)+根号(y

1楼 匿名用户 xy y xy x xy x y xy 3 5 3 5 3 3 已知x y 5,xy 3求根号 根号的值 2楼 匿名用户 是根号x加根号y吗? 如果是那就先算根号 根号的平方喽 平方完就是x y 2根号xy 5 2根号3喽然后根号 根号肯定大于0 所以开平方取正数 就是根号 5 2根...

已知隐函数y y(x)由方程xy 1-e y确定,求y"

1楼 自由自在 已知隐函数 y y x 由方程xy 1 e y确定,求y将等式两边对x求导数得 y xy e y y 则 y y e y x y 0 y e y 设y y x 是由方程e y xy 1所确定的隐函数,求dy dx 2楼 宇文仙 e y xy 1 两边同时对x求导得 e y y y x...