matlab中非线性方程组求解问题(关于fsolve和solve的差别)
如果非线性方程组可以有无穷多解,fsolve可以在图上获取零点初始数值,计算一组解,那么solve函数求得的是哪组解?fsolve和solve在精度方面有多大差别?...
如果非线性方程组可以有无穷多解,fsolve可以在图上获取零点初始数值,计算一组解,那么solve函数求得的是哪组解?
fsolve和solve在精度方面有多大差别? 展开
fsolve和solve在精度方面有多大差别? 展开
1个回答
展开全部
fsolve是用迭代方法计算选定迭代初始点的解。
solve是一般的解方程和方程组,精度变化应该变化比较大;简单的方程(组),是精确解。
我记得solve的到好几组解吧。比如:
A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6')
returns
A =
a: [4x1 sym]
u: [4x1 sym]
v: [4x1 sym]
where
A.a =
[ 2]
[ 2]
[ 3]
[ 3]
A.u =
[ 1/3+1/3*i*2^(1/2)]
[ 1/3-1/3*i*2^(1/2)]
[ 1/4+1/4*i*3^(1/2)]
[ 1/4-1/4*i*3^(1/2)]
A.v =
[ -2/3+1/3*i*2^(1/2)]
[ -2/3-1/3*i*2^(1/2)]
[ -3/4+1/4*i*3^(1/2)]
[ -3/4-1/4*i*3^(1/2)]
把所有解都给出了。
solve是一般的解方程和方程组,精度变化应该变化比较大;简单的方程(组),是精确解。
我记得solve的到好几组解吧。比如:
A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6')
returns
A =
a: [4x1 sym]
u: [4x1 sym]
v: [4x1 sym]
where
A.a =
[ 2]
[ 2]
[ 3]
[ 3]
A.u =
[ 1/3+1/3*i*2^(1/2)]
[ 1/3-1/3*i*2^(1/2)]
[ 1/4+1/4*i*3^(1/2)]
[ 1/4-1/4*i*3^(1/2)]
A.v =
[ -2/3+1/3*i*2^(1/2)]
[ -2/3-1/3*i*2^(1/2)]
[ -3/4+1/4*i*3^(1/2)]
[ -3/4-1/4*i*3^(1/2)]
把所有解都给出了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询