向高手请教,如何用matlab求解一元二次方程组

2025-03-04 13:19:35
推荐回答(2个)
回答1:

function [x1 x2]=myfunction3(a,b,c)
delta=b*b-4*a*c
if delta>0
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
elseif delta==0
x1=-b/(2*a);
x2=x1;
else
x1=-b/(2*a)+((sqrt(delta))/(2*a)) ;
x2=-b/(2*a)-((sqrt(delta))/(2*a)) ;
end
你的程序有好几处错误,这个就好使了

回答2:

写的不错,几个小错误:

function [x1 x2]=myfunction3(a,b,c)
a=1,b=2,c=3
delta=b*b-4*a*c
if delta>0
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
elseif delta==0 %error1
x1=-b/(2*a)
x2=x1
else
x1=-b/(2*a)+(sqrt(delta))/(2*a)*i %error 2
x2=-b/(2*a)-(sqrt(delta))/(2*a)*i %error 2
end

结果:
a =

1

b =

2

c =

3

delta =

-8

x1 =

-2.4142

x2 =

0.4142

ans =

-2.4142