2012-10-10 2 views
2
clc; 
clear all; 

syms y a2 a3 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% [ 0.5 0.25 0.125 ] [ a2 ] [ y ] 
% [ 1  1  1 ] [ a3 ] = [ 3 ] 
% [ 2  4  8 ] [ 6 ] [ 2 ] 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

M = [0.5 0.25 0.125; 1 1 1; 2 4 8]; 
t = [a2 a3 6]; 
r = [y 3 2]; 

sol = M * t' 

s1 = solve(sol(1), a2) % solve for a2 
s2 = solve(sol(2), a3) % solve for a3 

이것은 내가 지금까지 가지고있는 것입니다.하나의 알려진 계수와 함께 선형 방정식의 계수에 대한 해답

0.5 * A2 + 0.25 * A3 + 0.125 * A4

A2 : 이들은

sol = 

conj(a2)/2 + conj(a3)/4 + 3/4 
     conj(a2) + conj(a3) + 6 
    2*conj(a2) + 4*conj(a3) + 48 


s1 = 

- conj(a3)/2 - 3/2 - Im(a3)*i 


s2 = 

- conj(a2) - 6 - 2*Im(a2)*i 

sol 우리가 방정식 형태로 다시 넣으면 우리가 가진 것이 무엇처럼 보이는 내 출력됩니다 + A3 + A4 = 3

2 * A2 + A3 + 4 * 8 * A4 = 2

,174,515 A4는 == 6

내 문제가 알려져있다

는 사실 a2a3의 값을 얻기 위해 이러한 방정식을 해결하기 위해 solve을 사용하는 방법에 붙어있다.

s2 a3을 해결하지만 우리가 종이에 가지고있는 것과 일치하지 않습니다. a2 + a3 + 6 = 3은 a3 = -3 - a2를 산출해야합니다.

때문에 가상입니다. 어쨌든 벡터 솔루션 sol을 각 행에 대해 [y 3 2] 값과 동일시해야합니다.

답변

1

solve 함수에 방정식을 제공해야합니다. 과 그냥 간단 :

sol = solve(M * t' == r'); 

결과는이 MATLAB R2012b 작동

sol.a2 = 17 
sol.a3 = -20 
sol.y = 17/4 

있습니다. 일반적으로 이것은 한 줄로 해결할 수 있습니다 :

solve('a2/2 + a3/4 - y + 3/4 = 0', 'a2 + a3 + 3 = 0', '2 * a2 + 4 * a3 + 46 = 0') 

P. 나는 이것을 체크했다. 이것은 MATLAB R2011b에서 작동한다.

+0

@Roemo Ah. 감사. 나는'sol (1) == some numbers'를하려고합니다. 그러나 그것은 나를 위해 잘되지 않았다. – CppLearner

+0

빠른 질문, @Roemo. 나는'??? ==> char를 사용하는 중 오류 논리에서 문자로 변환 할 수 없습니다. '2011b를 사용하고 있습니다. 문제가 있습니까? – CppLearner

+0

답변을 업데이트했습니다. – Romeo

관련 문제