找回密码
 注册
关于网站域名变更的通知
查看: 576|回复: 1
打印 上一主题 下一主题

MATLAB求解方程之vpasolve(Symbolic Math Toolbox)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-31 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
vpasolve(Symbolic Math Toolbox)最后再补充一个数值解法 vpasolve,vpasolve 是 R2012b 引进的函数,可以求解一元或多元函数零点。相比于 fzero 和 fsolve 来说,vpasolve 最大的一个优点就是不需要提供初值,并且能够自动搜索指定范围内的多个解。
! L6 M, a+ {$ z# b1 J) _& O7 d+ }4 u/ Z0 M
vpasolve 调用形式:
  • S = vpasolve(eqn)
  • S = vpasolve(eqn,var)
  • S = vpasolve(eqn,var,init_guess)
  • ___ = vpasolve(___,Name,Value)
    ) c3 \: ^& |, P) `7 k/ P$ Z
其中 eqn 是符号方程,var 为待求解变量,也可以不提供(第一种调用形式,默认求解变量由 symvar(eqn) 求得), init_guess 为搜索初值,Name,Value 为选项控制。
  • %例:对于多项式方程,vpasolve 能够给出所有解
  • syms x
  • vpasolve(4*x^4 + 3*x^3 + 2*x^2 + x + 5 == 0, x)
  • ans =
  • - 0.88011 - 0.76332i
  •    0.50511 + 0.81599i
  •    0.50511 - 0.81599i
  • - 0.88011 + 0.76332i
    / J+ V4 f# C" [6 }% J5 o: k. }2 ^
对于非多项式方程,vpasolve 只能给出一个解:
  • syms x
  • vpasolve(sin(x^2) == 1/2, x)
  • ans =
  • -226.94) A$ G4 O% S; t6 r9 O8 B
这时可以提供搜索初值,来搜寻其它零点:
  • syms x
  • vpasolve(sin(x^2) == 1/2, x,100)
  • ans =
  • 99.996
    3 ^% L1 U) J6 \! T! \7 u) m8 `
可以指定搜索范围,但不同于 solve,solve 指定求解范围是用 assume 函数,vpasolve 则是直接在输入参数中指定:
  • syms x
  • vpasolve(x^8 - x^2 == 3, x, [-Inf Inf]) %实数范围内求解
      y% P. C1 J  ~& Y8 g
最后,vpasolve 一个很强大的用法,将 ‘random’ 选项设置为 true 可以直接搜索指定范围内不同解:
  • syms x
  • f = x-tan(x);
  • for n = 1:3
  •   vpasolve(f,x,'random',true)
  • end
    0 [. o4 Y" I. a5 C  G$ A6 b' Z# c
6 ?1 m  b4 z0 A

该用户从未签到

2#
发表于 2020-12-31 18:19 | 只看该作者
MATLAB求解方程之vpasolve(Symbolic Math Toolbox)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-2 11:36 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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