문제

나는 이것을 실패했다 :

find_fit(data, quadratic_residues)

물 유량에 대한 데이터에 가장 적합한 것을 찾으려고 노력하고 있습니다. http://dl.getdropbox.com/u/175564/rate.png

--- 댓글 후 편집 ---

새 코드 :

var('x')
model(x) = x**2
find_fit((xlist, reqlist), model)

오류 메시지 :

Traceback (click to the left for traceback)
...
TypeError: data has to be a list of lists, a matrix, or a numpy array

---편집하다

오류 메시지는 이제 다음과 같습니다.

Traceback (click to the left for traceback)
...
ValueError: each row of data needs 2 entries, only 5 entries given

여기서 사진과 마찬가지로 :http://dl.getdropbox.com/u/175564/sage.png

도움이 되었습니까?

해결책

mydata = [[1,3],[2,7],[3,13],[4,24]]
var('a,b,c')
mymodel(x) = a*x^2 + b*x + c 
myfit = find_fit(mydata,mymodel,solution_dict=True)
points(mydata,color='purple') + plot(
  mymodel(
    a=myfit[a],
    b=myfit[b],
    c=myfit[c]
    ), 
    (x,0,4,),
    color='red'
  )

다른 팁

나는 당신의 문제가 quadratic_residues가 당신이 의미하는 바를 의미하지는 않는다는 것입니다. 최고의 2 차 모델에 맞추려고한다면 같은 일을하고 싶다고 생각합니다.

var('a, b, c, x')
model(x) = a*x*x + b*x + c
find_fit(data, model)

Steven의 그의 모범을 시도해 보았습니다. 나는 또한 오류에 부딪쳤다.

ValueError: each row of data needs 5 entries, only 2 entries given

다음은 SAGE 4.7에서 작업하는 것으로 테스트 한 더 명백한 예입니다.

sage: l=[4*i^2+7*i+134+random() for i in xrange(100)]
sage: var('a,b,c,x')
(a, b, c, x)
sage: model=a*x^2+b*x+c
sage: find_fit(zip(xrange(100),l),model,variables=[x])
[a == 4.0000723084513217, b == 6.9904742307159697, c == 134.74698715254667]

A, B, C 및 X 중 어느 것이 모델의 변수에 해당하는지 Sage를 알려주기 위해 변수 = [x]가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top