2016-08-08 5 views
0

다음 수식에 맞아야하는 데이터가 있습니다. [x*sin(1/x)]^2. 난 정말 그런 기능을 위해 선택하는 계수 모르는, 내가 시도 :Matlab 사용자 지정 피팅이 실패합니다.

model = fittype('a*((xx/b)*sin(b/xx))^2+c','independent',{'xx'},'dependent',{'FF_norm(:,i)'}, 'coefficients', {'a','b','c'}); 
opt=fitoptions(model); 
myfit=fit(xx,FF_norm(:,i),model, opt); 
myfit 
plot(myfit,xx,FF_norm(:,i)) 

나는 언제나 직선처럼 보이는 적합을 얻을. 출발점을 입력하는 것이 더 나을 것 같습니다. 그러나 Matlab이 어떻게 해석 할 지 모르므로 실제로이 점을 선택하는 방법을 모릅니다. 숫자를 시도 할 때마다 항상 오류가 발생합니다.

+0

숫자를 사용할 때 어떤 오류가 발생합니까? – EBH

+0

나는 그것을 다시 시험해 보았는데, 지금은 아무런 오류가 없지만, 그 말은 어리석은 짓이다. 데이터는 실제로 포물선처럼 보입니다. 그리고 적합은 직선 수평선과 같습니다. 시작점이 무엇이든 관계없이 직선을 유지합니다. 이것을 할 수있는 또 다른 방법이 있습니까? 나는 최소의 피팅을 시도했지만 성공하지 못했습니다. – Apollo

답변

0

은 당신이 발생하는 문제가 무엇인지 잘 모르겠지만, 나는이 코드를 사용하여 문제를 재현하려 :

xx = (0.1:0.1:10).'; 
error = rand(size(xx)).*2; 
data = 5.*((xx./6).*sin(6./xx)).^2+7+error; 
model = fittype('a.*((xx./b)*sin(b./xx)).^2+c','independent',{'xx'},'dependent'... 
    ,{'data'}, 'coefficients', {'a','b','c'}); 
opt = fitoptions(model); 
opt.StartPoint = [1 1 1]; 
[myfit,gof] = fit(xx,data,model,opt) 
plot(myfit,xx,data); 

그것은 나에게이 출력했다 :

myfit = 
    General model: 
    myfit(xx) = a.*((xx./b)*sin(b./xx)).^2+c 
    Coefficients (with 95% confidence bounds): 
     a =  5.18 (4.846, 5.514) 
     b =  6.318 (5.84, 6.796) 
     c =  7.995 (7.777, 8.213) 

아주이다 정확하고 플롯도 괜찮아 보입니다. fitting model

사실, 항상 첫 번째 시도에서는 작동하지 않지만 몇 번 시도해야합니다. 너는 뭔가 좋은 것을 얻는다. 내 방식은 모델의 적절한 매개 변수를 검색하기 위해 fit 함수의 while 루프와 gof (적합도) 출력을 사용하는 것입니다. 위의 결과 :

gof = 
      sse: 27.757 
     rsquare: 0.91357 
      dfe: 97 
    adjrsquare: 0.91178 
      rmse: 0.53493 

이 과정은 보유하고있는 데이터의 양에 따라 다르지만 사실은 항상 사실입니다.

+0

문제는 데이터 요소의 추세와 거의 일치하지 않는다는 것입니다. 내가 얻은 음모를 보여줄 것이지만 여기에 수치를 포함하는 방법을 모르겠습니다. 계수 a, b 및 c의 값은 각각 1, 2 * 10^(- 7) 및 0이어야합니다. myfit = 일반 모델 : 그러나이 내가 얻을 결과입니다. myfit (XX)는을 =을 * ((xx./b)*sin(b./xx)).^2+c 계수 (95 % 신뢰 구간) : a = 0.8531 (-1.863e + 06, 1.863e + 06) b = 2.793e-08 (-0.0241, 0.0241) c = -0.1468 (-1.863e + 06, 1.863 e + 06) – Apollo

+0

@Apollo 줄거리를 볼 필요가 없습니다. 데이터에 대한 이해가 필요합니다. 몇 가지 예를 들려 줄 수 있습니까? – EBH