matlab中非线性方程组求解问题(关于fsolve和solve的差别)
发布网友
发布时间:2022-05-06 16:09
我来回答
共1个回答
热心网友
时间:2023-10-11 08:07
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)]
把所有解都给出了。
热心网友
时间:2023-10-11 08:07
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)]
把所有解都给出了。