用matlab解一元二次方程出错了,是什么原因啊

 我来答
PeriShare
2018-04-13 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36826

向TA提问 私信TA
展开全部

方程里面有参数,而且还是实数向量,这是无法求解的,并且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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式