matlab向量函数求梯度,用Matlab计算含有n个自变量的函数的梯度或句柄的使用

本文讨论了如何在Matlab中计算包含多个自变量的函数梯度,并提出了一种方法,但遇到将符号变量转换为数值向量函数的挑战。作者通过示例展示了使用`syms`和`diff`函数定义和求解梯度,然后尝试使用`matlabFunction`将梯度表达式转化为可执行的函数句柄,以适应大规模自变量的情况。
摘要由CSDN通过智能技术生成

本帖最后由 徐小妹 于 2019-8-12 22:26 编辑

后面红色部分是问题,前面是相应的一些背景。

如果自变量个数很少,那可以很简单的带入;但如果自变量个数很多,比如n = 100,就会希望能够有一个程序可以直接计算出导数。因为自己没有找到现成的这种求导函数,所以想尝试写一个。

下面附上自己写的求解100维函数的导数的程序,只是结果是一个100维的符号变量;

那么问题就在于如何把它转化为数值变量,从而可以对任意给定的100维数值向量,都可以带入求解?

5f80547c481312b5512db0bf93ad1d67.png

1.png (1.76 KB, 下载次数: 21)

2019-8-12 22:26 上传

%%%%%%%%%%%%第一部分,这是在定义上图中的函数,没有问题%%%%%%%%%%%%%

n=100;

for i=1:n

syms(['x',num2str(i)]);

end

s=sym('x',[1,n]);                                           %%%%%%%%%%%%%                   构建符号变量x

a = 20; b = 0.2; c = 2*pi;

s1 = 0; s2 = 0;

for i=1:n

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值