2013-02-02 4 views
2

이것은 매우 간단 할 수 있지만 기호 객체를 사용하여 두 선형 방정식을 풀 수있는 행렬을 설정하는 데 문제가 있습니다.MATLAB에서 기호 객체를 사용하여 간단한 선형 대수 방정식을 푸십시오.

방정식 형태에있다 :

(1) a11*x1 + a12*x2 + b1 = 0 
(2) a21*x1 + a22*x2 + b2 = 0 

그래서 I는 벡터 {E} 가지고

 [ a11*x1 + a12*x2 + b1 ] 
{E} = [ a21*x1 + a22*x2 + b2 ] 

를 I는 행렬 [A]와 벡터 {B} 정도 싶어 나는

[A]*{X} + {B} = 0 => {X} = -[A]\{B}. 

,691, 즉 방정식을 해결할 수
 [ x1 ] 
{X} = [ x2 ] 

     [ a11 a12 ] 
[A] = [ a21 a22 ] 

     [ b1 ] 
{B} = [ b2 ] 

매트릭스 [A]는 {E}의 자 코비안 매트릭스이지만 {B}를 얻기 위해 {E}에서 수행해야하는 연산은 무엇입니까? 즉 x를 포함하지 않는 용어는 무엇입니까?

이 내가 한 일이다 : 나는 한 줄에서이 작업을 수행하는 몇 가지 기능이 있어야한다 생각하고

x = sym('x', [2 1]); 
a = sym('a', [2 2]); 
b = sym('b', [2 1]); 

E = a*x + b; 
A = jacobian(E,x); 

n = length(E); 
B = -E; 
for i = 1:n 
    for j = 1:n 
     B(i) = subs(B(i), x(j), 0); 
    end 
end 

X = A\B 

.

기본적으로 내 질문은 : 루프 대신에 무엇을 할 수 있습니까?

(나는이 검색하여 매우 간단하고 쉽게 찾을 뭔가 알고 있습니다. 문제는 나는 이것이 내가 무엇을 찾아야할지 모르겠라는 것을 모르는 것입니다.)

답변

1

은 그냥 B = subs(B,x,[0 0])입니다

+0

나는 그것이 아주 간단하다는 것을 알았다. :) 고맙습니다. 행렬 B가 무엇인지 아십니까? (나는 그것을 내 보고서에서 무엇이라고 부릅니까?) –

+0

나는 '불 균질성'또는 방정식 시스템의 '우 측'이라고 부를 것입니다 ... 그리고 또한 나는 이것을 벡터라고 부릅니다. – Jan

+0

그 행렬 비트는 뇌파였습니다. :) 다시 감사합니다. –

관련 문제