用matlab解一元二次方程出错了,是什么原因啊
展开全部
方程里面有参数,而且还是实数向量,这是无法求解的,并且matlab最新版本不主张直接使用符号表达式进行求解,而是要么设置函数进行数值求解,要么直接进行符号求解(预先申明符号变量)。我喜欢直接数值求解,效率高。
比如
a = [1;2;3;4];
F = @(x,a) x.^2+4*x-a;
format long
x = fsolve(@(x)F(x,a),rand(size(a)))
求解结果:
x =
0.236067977499804
0.449489742783178
0.645751311064591
0.828427124746191
也可以符号求解,这样的话由于是一元二次方程,每个a对应下有两个x的解答如下:
syms x a
F = x^2-2*x+a;
xs = solve(F,x);
a0 = [1;2;3;4];
subs(xs,a,a0)
计算结果:
ans =
1
1 - 1i
1 - 2^(1/2)*1i
1 - 3^(1/2)*1i
1
1 + 1i
1 + 2^(1/2)*1i
1 + 3^(1/2)*1i
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询