Reputation: 111
I'm not so familiar with MATLAB, i've just recently started using it, and a need help fixing some problems i've encountred.
a = input('Skriv inn en verdi for a: ');
b = input('Skriv inn en verdi for b: ');
c = input('skriv inn en verdi for c: ');
d = input('Skriv inn en verdi for d: ');
A = [a b; c d]
%Tester om matrisen er rektangulær
[na, ma] = size(A);
if na ~= ma
disp('ERROR');
return
end
syms lambda
det =((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1))
%Currently under development
e1 = (t + sqrt(t^2 - 4*n*d))/2;
e2 = (t - sqrt(t^2 - 4*n*d))/2;
if A ~= 0
x1 = [a-e1; b];
end
when I enter 1 as the value for a b c and d i get this
Skriv inn en verdi for a: 1
Skriv inn en verdi for b: 1
skriv inn en verdi for c: 1
Skriv inn en verdi for d: 1
A =
1 1
1 1
det =
(lambda - 1)^2 - 1
I want it to be written out as lambda^2 + 2lambda +- (c) = 0 (i don't know how to set the whole equation as = 0
Upvotes: 1
Views: 114
Reputation: 1868
To rewrite (lambda - 1)^2 - 1
to lambda^2 + 2lambda +- (c)
you can use expand
. If you want to be able to work further with det
in the form of the equation lambda^2 + 2lambda +- (c) = 0
then you need a double =
:
det = expand(((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1))) == 0
When printed there will also be a double =
. If you need det
just for printing purpose then you can use:
det = expand(((A(1,1)-lambda)*(A(2,2)-lambda))-(A(1,2)*A(2,1)));
disp([char(det), ' = 0'])
Upvotes: 2