2013-05-23 4 views
3

로는 :커브 피팅 두 배열 구성 I 커브 피팅 데이터 일하고 맞춤 식

t: 1, 3, 4, 7, 8, 10 

P: 2.1, 4.6, 5.4, 6.1, 6.4, 6.6 

두 변수 사이의 관계는 P = mt/(b+t) 주어진다. 방정식을 데이터 포인트에 커브 피팅 (curve-fitting)하여 상수 m과 b를 결정하라. 이것은 방정식의 역수를 쓰고 1 차 다항식을 사용하여 수행해야합니다.

t = [1 3 4 7 8 10]; 
P = [2.1 4.6 5.4 6.1 6.4 6.6]; 

p = polyfit(t, t./P, 1); 


m = 1/p(1) 
b = p(2)*m 

tm = 1:0.01:10; 
Pm = (m*tm)./(b+tm); 

plot(t,P, 'o', tm, Pm) 

책에 답이 m = 9.4157b = 3.4418입니다 : 여기 내 코드입니다. 위의 코드는 m = 8.4807b = 2.6723을 산출합니다. 내 실수는 무엇입니까? 어떤 제안이라도 대단히 감사하겠습니다. 시간 내 주셔서 감사합니다.

+3

책의 답변이 잘못 되었습니까? 나는 '홀드 온, 줄거리 (tm, (9.4157 * tm) ./ (3.4418 + tm),'r ')'라고 대답하고, 적어도 눈을 뜨고, 솔루션이 피팅에 더 가깝다고 제안하십시오. –

+0

나는 같은 것을 궁금해. 나는 내 대답을 그대로 남겨 둘 것이다. 귀하의 답변에 대해 대단히 감사합니다, David_G. – scimaks

답변

1

@David_G 님이 작성한 의견에 대해 더 잘 답변 해 주셨습니다. 당신은 MATLAB에서 곡선 피팅 도구 상자를 통해 데이터를 실행하는 경우 사실, 당신은 얻을 :

General model: 
    f(t) = m*t/(b+t) 
Coefficients (with 95% confidence bounds): 
    b =  2.587 (1.645, 3.528) 
    m =  8.448 (7.453, 9.443) 

Goodness of fit: 
    SSE: 0.1594 
    R-square: 0.9888 
    Adjusted R-square: 0.986 
    RMSE: 0.1996 

귀하의 솔루션은 거의 좋은 :

Goodness of fit: 
    SSE: 0.1685 
    R-square: 0.9881 
    Adjusted R-square: 0.9852 
    RMSE: 0.2053 

그리고 둘 다 책에서보다 더 나은 :

Goodness of fit: 
    SSE: 0.404 
    R-square: 0.9716 
    Adjusted R-square: 0.9645 
    RMSE: 0.3178 
+0

고맙습니다. 위그노. 나는이 책의 저자가 자신의 결론에 어떻게 도달했는지를 배웠지 만 나는 나의 대답을 고수하게되어 기쁘다. 다시 감사합니다. – scimaks

관련 문제