필터 지우기
필터 지우기

How can I solve this following problem? (overcome * mark)

조회 수: 2 (최근 30일)
PULAK Kumer
PULAK Kumer 2021년 1월 25일
댓글: Steven Lord 2021년 1월 25일
My code is :
%Start
clear all
clc
%Input required values
fprintf('***********************Gauss Jodern Elimination Method*************************\n')
fprintf('***************<strong>Code has been created by Pulak(181201)</strong>***********************\n')
format rational
n=input('How many variables?: ');
A=input('coefficient matrix: ');
for i=1:n
for j=1:n
a(i,j)=A(i,j);
end
end
AB=a;
B=input('Constant matrix: ');
for i=1:n
b(i)=B(i);
end
disp('The given equations in matrix form is or Augmented Matrix:')
AB=[A B]
%checking the ranks
%Finding determinant
dett = det(a);
%Check Elemination
if dett == 0
print('This system unsolvable because det(C) = 0 ')
return
else
if rank(A)==rank(AB)
disp('Unique solution exit')
else
disp('Unique solution doesnot exit')
end
j=1;
for i = 1:n-1
if (i==j)
if (AB(i,j)==0)
for q=1:n-1
if (AB(i+q,j)~=0)
c = AB(i,:);
AB(i,:)= AB(i+q,:);
AB(i+q,:) = c;
break
end
end
end
AB(i,:)= (1/AB(i,j))* AB(i,:);
for k=i+1:n
AB(k,:)=(-AB(k,j)* AB(i,:)) + AB(k,:);
end
end
j=j+1;
end
AB(n,:)= (1/AB(n,n))* AB(n,:);
for j=n:-1:2
for i=j-1:-1:1
AB(i,:)=AB(i,:)-AB(j,:)*(AB(i,j))
end
end
disp('The final Matrix is:')
AB
for s=1:n
x(s)=AB(s,n+1)
end
for i=1:n
ans=x(i);
fprintf('\nThe %d-th solution is x(%d)= %.6f',i,i,ans)
end
fprintf('\n\n')
fprintf('***********************<strong>Code has been created by Pulak(181201)</strong>***********************\n')
end
but in the ouput:
***********************Gauss Jodern Elimination Method*************************
***************Code has been created by Pulak(181201)***********************
How many variables?: 4
coefficient matrix: [1 -0.7 0.3 0.5;-6 8 -1 -4;3 1 4 11;5 -9 -2 4]
Constant matrix: [0.2;5;2;7]
The given equations in matrix form is or Augmented Matrix:
AB =
1 -7/10 3/10 1/2 1/5
-6 8 -1 -4 5
3 1 4 11 2
5 -9 -2 4 7
Unique solution exit
The final Matrix is:
AB =
1 * 0 * 3531/923
0 1 0 * 1091/333
0 * 1 * -2063/324
0 * 0 1 1067/923
The 1-th solution is x(1)= 3.825569
The 2-th solution is x(2)= 3.276273
The 3-th solution is x(3)= -6.367281
The 4-th solution is x(4)= 1.156013
***********************Code has been created by Pulak(181201)***********************
My question is why * is seen instead of 0? And how can I overcome this problem?

채택된 답변

Steven Lord
Steven Lord 2021년 1월 25일
From the help text for the format function:
format RAT Approximation by ratio of small integers. Numbers
with a large numerator or large denominator are
replaced by *.
Most likely this means those elements are small (but non-zero) numbers that have large denominators.
format rational
x = [1, 1e-10]
x =
1 *
  댓글 수: 2
PULAK Kumer
PULAK Kumer 2021년 1월 25일
How can i solve this problem sir?
Steven Lord
Steven Lord 2021년 1월 25일
Some options:
Replace those small values with 0.
Replace them with close approximations that have small denominators.
Display your data using a different display format.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Elementary Math에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by