MATLAB 符号函数转换为数值函数? 10

我要求函数的一阶偏导为零的那个点,因此设为符号函数,用diff求一阶偏导,用solve求解,但最后怎么把结果转化为数值呢?... 我要求函数的一阶偏导为零的那个点,因此设为符号函数,用diff求一阶偏导,用solve求解,但最后怎么把结果转化为数值呢? 展开
 我来答
tulintou
2015-11-13 · 知道合伙人教育行家
tulintou
知道合伙人教育行家
采纳数:1208 获赞数:12601
毕业于重庆理工大学,硕士学位。参与国家自然科学基金项目。

向TA提问 私信TA
展开全部
  1. 最简便的办法:利用 matlabFunction(这个函数只适用于2009a及更新的版本)
  syms x

  y=exp(x)*x^2+x+1

  g = matlabFunction(y)
  2. eval + vectorize 函数:vectorize 的目的是将字符串(string)表达式里的 * / ^ 替换为 .* ./ .^ ,以支持向量运算。eval 执行该字符串后得到函数句柄
  syms x

  y=exp(x)*x^2+x+1

  g = eval(['@(x)',vectorize(y)])
  3. str2func + vectorize 函数:str2func 函数可以直接将字符串转化为函数句柄
  syms x

  y=exp(x)*x^2+x+1

  g = str2func(['@(x)',vectorize(y)])
  4. str2num + vectorize
  syms x

  y=exp(x)*x^2+x+1

  g = str2num(['@(x)',vectorize(y)])
数码答疑

2015-10-01 · 解答日常生活中的数码问题
数码答疑
采纳数:8805 获赞数:18622

向TA提问 私信TA
展开全部
直接重新复制结果,粘贴就计算出来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zmltxwd
2012-10-22 · TA获得超过2043个赞
知道大有可为答主
回答量:1050
采纳率:33%
帮助的人:720万
展开全部
看情况,如果是数值的表达式,用double就可以了
如果里面含有字母,就用subs函数来替换
追问
小弟在做非线性最优化,用的是含有字母的函数,而且是迭代运算的,N个变量(这里设为符号变量,为了求函数的微分)同时迭代,第i个变量求解时,其余(N-1)个变量视为常数,敢问大神我该怎么处理啊
追答
那就用subs替换了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友db4b04636
2012-10-22 · TA获得超过2915个赞
知道小有建树答主
回答量:834
采纳率:92%
帮助的人:339万
展开全部
一开始是符号后面就没法变了。

可以开始时将要算的变量用以个矩阵表示 如0:0.01:20来表示 再解 就是数值解了
追问
这样还能对函数进行diff 和solve 吗?
追答
可以diff,int,不过solve好像不行吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式