MATLAB符号表达式->函数->求值

本文介绍如何在MATLAB中将符号表达式的解转换为可用于数值计算的函数。通过使用solve函数求解符号方程,并利用eval和vectorize将得到的符号解转化为函数句柄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        有时候需要解符号表达式得到某个量关于其他量的显式表达式,MATLAB解出的结果任然是符号表达式,我们希望可以用这个表达式构造函数,进一步求值。

function test
   syms x y
   y=solve(' x^2+y^2+x*y-y*log(x)=0','y');
   class(y)
   y(1)
   f=cell(1,length(1));
   for i=1:length(y)
       f{i}=eval(['@(x)',vectorize(y(i))]);
   end
   classf=class(f{1})
   f{1}(rand(5))
end

the result  as follow:

classf =

   function_handle


ans =

  -0.5121 + 0.6097i  -0.0088 + 0.0000i  -0.5144 + 0.5851i  -0.5286 + 0.4570i  -0.2353 + 0.0000i
  -0.0040 + 0.0000i  -0.5240 + 0.4956i  -0.5252 + 0.4852i  -0.0218 + 0.0000i  -0.5024 + 0.7524i
  -0.0440 + 0.0000i  -0.0049 + 0.0000i  -0.5025 + 0.7512i  -0.0003 + 0.0000i  -0.5522 + 0.2589i
  -0.0837 + 0.0000i  -0.5394 + 0.3694i  -0.5032 + 0.7352i  -0.5198 + 0.5324i  -0.5497 + 0.2816i
  -0.5329 + 0.4220i  -0.2601 + 0.0000i  -0.0829 + 0.0000i  -0.2712 + 0.0000i  -0.5055 + 0.6951i



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值