|  | 
 
| 
vpasolve(Symbolic Math Toolbox)最后再补充一个数值解法 vpasolve,vpasolve 是 R2012b 引进的函数,可以求解一元或多元函数零点。相比于 fzero 和 fsolve 来说,vpasolve 最大的一个优点就是不需要提供初值,并且能够自动搜索指定范围内的多个解。
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  6 i8 ^& V7 q# N! r
 ; f. j* G6 a1 H+ x0 E0 Z5 Uvpasolve 调用形式:
 其中 eqn 是符号方程,var 为待求解变量,也可以不提供(第一种调用形式,默认求解变量由 symvar(eqn) 求得), init_guess 为搜索初值,Name,Value 为选项控制。S = vpasolve(eqn) S = vpasolve(eqn,var) S = vpasolve(eqn,var,init_guess)___ = vpasolve(___,Name,Value)& G6 _" g/ `4 Z
 对于非多项式方程,vpasolve 只能给出一个解:%例:对于多项式方程,vpasolve 能够给出所有解 syms xvpasolve(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( H5 h) Y1 X& G6 t: T! Q6 p
 这时可以提供搜索初值,来搜寻其它零点:syms xvpasolve(sin(x^2) == 1/2, x) ans = -226.94" _# O" o$ O) {( r1 ~4 v
 可以指定搜索范围,但不同于 solve,solve 指定求解范围是用 assume 函数,vpasolve 则是直接在输入参数中指定:syms xvpasolve(sin(x^2) == 1/2, x,100) ans = 99.996, O+ [3 p. @. }# ~
 最后,vpasolve 一个很强大的用法,将 ‘random’ 选项设置为 true 可以直接搜索指定范围内不同解:syms xvpasolve(x^8 - x^2 == 3, x, [-Inf Inf]) %实数范围内求解6 f* g4 p$ ~. ]1 C$ L3 l
 ' _; p2 O( g; H+ {/ z# Esyms x f = x-tan(x);for n = 1:3   vpasolve(f,x,'random',true) end5 \; U& A9 @( t
 
 | 
 |