■
#-*- coding:utf-8 -*- from numpy import * from pylab import * #例題4.5 x=[-1,0,0,1] y=[0,-2,-1,0] #当てはめる式を二次関数とするax^2+bx+c def g(A,B): A_11=[] for i in A: A_11.append(i*i*i*i) x_11=sum(A_11) A_12=[] for i in A: A_12.append(i*i*i) x_12=sum(A_12) x_21=x_12 x_13=np.dot(A,A) x_22=x_13 x_31=x_22 x_23=sum(A) x_32=x_23 x_33=len(A) b_1=dot(A_12,B) b_2=dot(A,B) b_3=sum(B) J=matrix([[x_11,x_12,x_13],[x_21,x_22,x_23],[x_31,x_32,x_33]]) K=matrix([[b_1],[b_2],[b_3]]) L=dot(J.I,K) return L[0],L[1],L[2] def main(): a,b,c=g(x,y) plot(x,y,'r*') xlist1=array(linspace(-2,2,1000)) xlist2=matrix(xlist1**2) xlist1=matrix(xlist1) ylist=a*xlist2+b*xlist1+c plot(xlist1,ylist,'b+') show() if __name__=="__main__": main()