matlab中的问题Missing variable or function.
function[x1,x2]=root(a,b,c,disc,realpart,imagpart)%求解一元二次方程a*x^2+b*x+c=0.%%变量设置和定义%a,...
function [x1,x2]=root(a,b,c,disc,realpart,imagpart)
%求解一元二次方程a*x^2+b*x+c=0.
%
%变量设置和定义
%a,b,c分别为自变量系数
%disc为判别式
%realpart和imagpart分别代表是不和虚部
%x1、x2分别表示方程的根(如果有双根)
disp('求解一元二次方程:a*x^2+b*x+c=0');
a=input(‘请用户输入“a”的值:’);
b=input(‘请用户输入“a”的值:’);
c=input(‘请用户输入“a”的值:’);
disc=b.^2-4*a*c;
if(a==0)
x1=-c/b;
x2=x1;
fprintf('x=%f\n',x1);
elseif(disc==0)
x1=-b/(2*a);
fprintf('x=%f\n',x1);
elseif(disc>0)
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
else
realpart=-b/(2*a);
imagpart=sqrt(abs(disc))/(2*a);
fprintf('x1=%f+i%f\n',realpart,imagpart);
fprintf('x2=%f-i%f\n',realpart,imagpart);
end
运行程序时总是显示Line: 9 Column: 41
Missing variable or function.
高手指点啊~ 展开
%求解一元二次方程a*x^2+b*x+c=0.
%
%变量设置和定义
%a,b,c分别为自变量系数
%disc为判别式
%realpart和imagpart分别代表是不和虚部
%x1、x2分别表示方程的根(如果有双根)
disp('求解一元二次方程:a*x^2+b*x+c=0');
a=input(‘请用户输入“a”的值:’);
b=input(‘请用户输入“a”的值:’);
c=input(‘请用户输入“a”的值:’);
disc=b.^2-4*a*c;
if(a==0)
x1=-c/b;
x2=x1;
fprintf('x=%f\n',x1);
elseif(disc==0)
x1=-b/(2*a);
fprintf('x=%f\n',x1);
elseif(disc>0)
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
else
realpart=-b/(2*a);
imagpart=sqrt(abs(disc))/(2*a);
fprintf('x1=%f+i%f\n',realpart,imagpart);
fprintf('x2=%f-i%f\n',realpart,imagpart);
end
运行程序时总是显示Line: 9 Column: 41
Missing variable or function.
高手指点啊~ 展开
2个回答
展开全部
line 9是哪一行?
你这个function主体没有错误, 但是输出有问题, 输入比较臃肿重复. 既然要手动输入a,b,c, 为什么还要参数传递? disc, realpart和imagepart也是, 是程序中计算的, 不用作为参数输入. 当然这不会导致报错. 导致报错的是在else环节, 没有x1和x2的赋值, 这样程序的输出就没有赋值了. 另外matlab是识别虚数的, i是一个虚单位, sqrt()这个函数是可以对负数直接开根号的, 不用特意判断这么多次. 你可以自己在matlab里面试一下
你这个function主体没有错误, 但是输出有问题, 输入比较臃肿重复. 既然要手动输入a,b,c, 为什么还要参数传递? disc, realpart和imagepart也是, 是程序中计算的, 不用作为参数输入. 当然这不会导致报错. 导致报错的是在else环节, 没有x1和x2的赋值, 这样程序的输出就没有赋值了. 另外matlab是识别虚数的, i是一个虚单位, sqrt()这个函数是可以对负数直接开根号的, 不用特意判断这么多次. 你可以自己在matlab里面试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这下子好了,主要是用了中文引号。
function [x1,x2]=root
%求解一元二次方程a*x^2+b*x+c=0.
%
%变量设置和定义
%a,b,c分别为自变量系数
%disc为判别式
%realpart和imagpart分别代表是不和虚部
%x1、x2分别表示方程的根(如果有双根)
disp('求解一元二次方程:a*x^2+b*x+c=0')
a=input('请用户输入“a”的值:');
b=input('请用户输入“b”的值:');
c=input('请用户输入“c”的值:');
disc=b.^2-4*a*c;
if(a==0)
x1=-c/b;
x2=x1;
fprintf('x=%f\n',x1);
elseif(disc==0)
x1=-b/(2*a);
fprintf('x=%f\n',x1);
elseif(disc>0)
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
else
realpart=-b/(2*a);
imagpart=sqrt(abs(disc))/(2*a);
fprintf('x1=%f+i%f\n',realpart,imagpart);
fprintf('x2=%f-i%f\n',realpart,imagpart);
end
例如:
>> root
求解一元二次方程:a*x^2+b*x+c=0
请用户输入“a”的值:1
请用户输入“b”的值:2
请用户输入“c”的值:3
x1=-1.000000+i1.414214
x2=-1.000000-i1.414214
function [x1,x2]=root
%求解一元二次方程a*x^2+b*x+c=0.
%
%变量设置和定义
%a,b,c分别为自变量系数
%disc为判别式
%realpart和imagpart分别代表是不和虚部
%x1、x2分别表示方程的根(如果有双根)
disp('求解一元二次方程:a*x^2+b*x+c=0')
a=input('请用户输入“a”的值:');
b=input('请用户输入“b”的值:');
c=input('请用户输入“c”的值:');
disc=b.^2-4*a*c;
if(a==0)
x1=-c/b;
x2=x1;
fprintf('x=%f\n',x1);
elseif(disc==0)
x1=-b/(2*a);
fprintf('x=%f\n',x1);
elseif(disc>0)
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
else
realpart=-b/(2*a);
imagpart=sqrt(abs(disc))/(2*a);
fprintf('x1=%f+i%f\n',realpart,imagpart);
fprintf('x2=%f-i%f\n',realpart,imagpart);
end
例如:
>> root
求解一元二次方程:a*x^2+b*x+c=0
请用户输入“a”的值:1
请用户输入“b”的值:2
请用户输入“c”的值:3
x1=-1.000000+i1.414214
x2=-1.000000-i1.414214
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询