2012-02-14 4 views
1

저는 s- 도메인에서 방정식 시스템을 풀려고합니다. 따라서이 방정식 시스템을 매트릭스 형태로 설정하십시오 :matlab에 불특정 상수를 사용합니다.

a=[.4*s+s+5 -5; -5 .5*s+5] 
c=[3/s; 3/(2*s)] 
(1/s)*a*b=c 

s가 정의되지 않았다는 오류가 나타납니다. s의 관점에서 b를 어떻게 풀 수 있습니까?

답변

5

Matlab은 (자연스럽게) 기호 계산을하지 않습니다. 이것이 여러분의 코드가 시도하는 것입니다. Matlab의 변수는 구체적인 숫자, 배열 또는 구조 등일 필요가 있습니다. 임의의 숫자에 대한 자리 표시자가 될 수 없습니다.

은 (하지 않는 한 :.. 당신은 matlab에 대한 symbolic computing toolbox을 사용 나는 그런 메이플 또는 티카와 같은 환경에서 상징적 인 컴퓨팅을 선호하기 때문에 난 정말 당신은 심지어 볼프람 알파 웹 사이트에서 문제를 해결할 수있는이 사용하지 않은)

하지만 컴퓨팅, s의 특정 값을 선택하면 당신이 원하는 것은 간단하다

내가 선형 반전을 수행하기위한 backslash operator을 사용했다
s = 5; 
a=[.4*s+s+5 -5; -5 .5*s+5]; 
c=[3/s; 3/(2*s)]; 
b = s*(a\c); 

.

는 이제

(1/s)*a*b-c 

제로 벡터 것을해야한다.

편집 : 나는 상징적 인 도구 상자를 들여다 보았다. 이다 상징적 연산자를 사용하여 계산을 수행 할 수

syms s; 
a=[.4*s+s+5 -5; -5 .5*s+5]; 
c=[3/s; 3/(2*s)]; 
b = simple(s*(a\c)) 
+0

정확히 내가 뭘 찾고 있었는지, 고마워! –

1

코드를 : 이것이 당신이 원하는처럼 보이는 (하지만 당신은 그것이 작동하는 상징적 인 도구 상자가 라이센스를 설치해야합니다)

syms s;       %This defines 's' as a symbolic token 
a=[.4*s+s+5 -5; -5 .5*s+5];  %a and c inherit the symbolic properties from s 
c=[3/s; 3/(2*s)];     
result = solve('(1/s)*a*b=c','b') %Solve is the general symbolic toolbox algebraic solver. 

result = 
(c*s)/a 

는 일반적 매트랩 수치 툴박스 최선 수행 생성한다. 따라서 응용 프로그램에 따라 Ian Hincks가 다른 답변에서 보여준 것과 같은 다른 접근 방식을 사용하게 될 것입니다. 그러나 때로는 상황이 상징적 인 해결책을 요구하기도합니다.