声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2927|回复: 6

[编程技巧] Matlab如何求方向导数

[复制链接]
发表于 2006-8-29 21:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问各位大侠,Matlab中如何求方向导数
回复
分享到:

使用道具 举报

发表于 2006-8-30 20:25 | 显示全部楼层
一个简单的例子

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

  1. clear;
  2. syms x y;
  3. z=x*sin(y)*exp(x);
  4. af=[sqrt(2)/2,-sqrt(2)/2]; % L的单位向量
  5. xy=jacobian(z);
  6. T=dot(xy,af);
  7. x0=subs(subs(T,'x',1),'af',1)  % 输出结果
复制代码

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

评分

1

查看全部评分

发表于 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'.
发表于 2006-8-30 20:53 | 显示全部楼层
原帖由 jimin 于 2006-8-30 20:31 发表

??? Undefined function or variable 'v'.


写错了一个字符,把V改成af就行了,上面已经修正
 楼主| 发表于 2006-9-13 13:50 | 显示全部楼层

多谢

试过了,好用
发表于 2007-1-25 14:10 | 显示全部楼层

happy的算法好?

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


说的没错,不过大多数"学过高等数学的人"应该都明白你所说的.
当然对于某些忘记了的人还是有提示作用的.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-7 17:12 , Processed in 0.054658 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表