liweidlut 发表于 2006-8-29 21:53

Matlab如何求方向导数

请问各位大侠,Matlab中如何求方向导数

happy 发表于 2006-8-30 20:25

一个简单的例子

z=x*sin(y)*exp(x) 在(1,1)点处沿直线L的方向导数,L为从(1,1)到(3,-1)

clear;
syms x y;
z=x*sin(y)*exp(x);
af=; % L的单位向量
xy=jacobian(z);
T=dot(xy,af);
x0=subs(subs(T,'x',1),'af',1)% 输出结果

[ 本帖最后由 happy 于 2006-8-30 20:53 编辑 ]

jimin 发表于 2006-8-30 20:31

原帖由 happy 于 2006-8-30 20:25 发表
一个简单的例子



clear;
syms x y;
z=x*sin(y)*exp(x);
af=; % L的单位向量
xy=jacobian(z);
T=dot(xy,v);
x0=subs(subs(T,'x',1),'af',1)% 输出结果
??? Undefined function or variable 'v'.

happy 发表于 2006-8-30 20:53

原帖由 jimin 于 2006-8-30 20:31 发表

??? Undefined function or variable 'v'.

写错了一个字符,把V改成af就行了,上面已经修正

liweidlut 发表于 2006-9-13 13:50

多谢

试过了,好用

tynewton 发表于 2007-1-25 14:10

happy的算法好?

关键要知道啥是方向导数,方向导数=梯度与所求方向上单位向量的点积。
当f为一位时,用jacobian(f)求出f的梯度向量,再点乘以所求方向上的单位向量即可。

xjzuo 发表于 2007-1-25 15:05

原帖由 tynewton 于 2007-1-25 14:10 发表
关键要知道啥是方向导数,方向导数=梯度与所求方向上单位向量的点积。
当f为一位时,用jacobian(f)求出f的梯度向量,再点乘以所求方向上的单位向量即可。

说的没错,不过大多数"学过高等数学的人"应该都明白你所说的.
当然对于某些忘记了的人还是有提示作用的.
页: [1]
查看完整版本: Matlab如何求方向导数