필터 지우기
필터 지우기

need help Writing a function that returns roots of a quadratic

조회 수: 3 (최근 30일)
This is my plan on how to write it (don't have software at my disposal currently). I am learning matlab so understand there may be quite a few problems.
Function [x]=myquad(a,b,c)
x=[r1 r2];
d=sqrt((b.^2)-4.*a.*c)
if a==0 & b>0
r1=-c/b;
elseif a==0 & b==0
r1=0;
elseif a~=0 & d==0
r1=-b./(2.*a);r2=r1;
elseif a~=0 & d>0
r1=(-b+d)./2a; r2=(-b+d)./2.*a;
elseif a~=0 & d<0
r1=(-b+d.*i)/2a; r2=(-b-d.*i)./2.*a;
end
end
I need to follow this algorithm for an assignment.
THANKS!

채택된 답변

Walter Roberson
Walter Roberson 2013년 2월 17일
편집: Walter Roberson 2013년 2월 17일
Your first two cases do not appear to set r2 to anything.
your a=0 b=0 case is wrong
Your "di" should probably be "d*i"
  댓글 수: 6
steve guy
steve guy 2013년 2월 17일
then that means my "d=0" should also be "d==0" in the code as well, right?

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 17일
There are some mistakes
if a==0 %instead of if a=0
elseif % instead of ifelse
  댓글 수: 1
Walter Roberson
Walter Roberson 2013년 2월 17일
Multiple assignment is not permitted. r1=r2=VALUE is not allowed. Use r1=VALUE; r2=r1

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2013년 2월 18일
Why do you need all those "if"s at all? Why not just do
function [r1 r2]=myquad(a,b,c)
d = sqrt((b^2)-4*a*c); % Can be complex with no problem.
r1=(-b-d)/(2*a);
r2=(-b+d)/(2*a);
MATLAB handles complex numbers and infinite numbers with no problem, so you don't need special if statements to do it manually.
  댓글 수: 2
steve guy
steve guy 2013년 2월 18일
Probably would make more sense to do that but I have to address all the different cases for an assignment. For instance if a user entered myquad(0,1,2) then I need it to say. "Not a quadratic, r1=-1/2".
do you think I could just write fprintf statements underneath the logical expressions for the different cases, in place of the formulas, and use what you suggested?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Get Started with Optimization Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by