Files
FYS-STK4155/doc/Programs/JupyterFiles/Design_matrix.ipynb
T
2023-05-03 11:48:50 -04:00

6.4 KiB

In [1]:
"""
Importations
"""

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter

import pandas as pd
import numpy as np
from random import random, seed

#plt.close()
#fig = plt.figure()
#ax = fig.gca(projection="3d")

# Make data

x0 = np.arange(0, 1, 0.05)
y0 = np.arange(0, 1, 0.05)

x, y = np.meshgrid(x0,y0)

def FrankeFunction(x,y):
	term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))
	term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))
	term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))
	term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)

	return term1 + term2 + term3 + term4

z = FrankeFunction(x, y)

matrix = np.zeros((len(y0)**2,21))

# First column

matrix[:,0] = 1

# Second column

X0 = []
for k in range(len(x0)):
	for i in range(len(x0)) :
		xk =  x0[k]
		X0.append(xk)

matrix[:,1] = X0

# Third column

Y0 = []
for k in range(len(y0)) :
	for i in range(len(y0)) :
		yk = x0[i]
		Y0.append(yk)

matrix[:,2] = Y0

# Fourth column

X02 = []
for k in range(len(x0)**2):
	X02.append(X0[k]**2)

matrix[:,3] = X02

# Fifth column

Y02 = []
for k in range(len(y0)**2):
	Y02.append(Y0[k]**2)
	
matrix[:,4] = Y02

# sixth column

X0Y0 = []
for k in range(len(x0)*len(y0)):
	X0Y0.append(X0[k]*Y0[k])
	
matrix[:,5] = X0Y0

#7th column

X03 = []
for k in range(len(x0)*len(y0)):
	X03.append(X0[k]*X0[k]*X0[k])

matrix[:,6] = X03


#8th column

Y03 = []
for k in range(len(x0)*len(y0)):
	Y03.append(Y0[k]*Y0[k]*Y0[k])

matrix[:,7] = Y03

#9th column

X02Y0 = []
for k in range(len(x0)*len(y0)):
	X02Y0.append(X0[k]*X0[k]*Y0[k]) 
	
matrix[:,8] = X02Y0
	
#10th column 	
 
X0Y02 = []
for k in range(len(x0)*len(y0)):
	X0Y02.append(X0[k]*Y0[k]*Y0[k])
	
matrix[:,9] = X0Y02

#11th column

X04 = []
for k in range(len(x0)*len(y0)):
	X04.append(X0[k]*X0[k]*X0[k]*X0[k])
	
matrix[:,10] = X04

#12th column

Y04 = []
for k in range(len(x0)*len(y0)):
	Y04.append(Y0[k]*Y0[k]*Y0[k]*Y0[k])
	
matrix[:,11] = Y04

#13th column

X03Y0 =[]
for k in range(len(x0)*len(y0)):
	X03Y0.append(X0[k]*X0[k]*X0[k]*Y0[k])
	
matrix[:,12] = X03Y0

#14th column

X02Y02 = []
for k in range(len(x0)*len(y0)):
	X02Y02.append(X0[k]*X0[k]*Y0[k]*Y0[k])
	
matrix[:,13] = X02Y02

#15th column

X0Y03 = []
for k in range(len(x0)*len(y0)):
	X0Y03.append(X0[k]*Y0[k]*Y0[k]*Y0[k])
	
matrix[:,14] = X0Y03

#16th column

X05 = []
for k in range(len(x0)*len(y0)):
	X05.append(X0[k]*X0[k]*X0[k]*X0[k]*X0[k])
	
matrix[:,15] = X05

#17th column

Y05 = []
for k in range(len(x0)*len(y0)):
	Y05.append(Y0[k]*Y0[k]*Y0[k]*Y0[k]*Y0[k])
	
matrix[:,16] = Y05

#18th column

X04Y0 = []
for k in range(len(x0)*len(y0)):
	X04Y0.append(X0[k]*X0[k]*X0[k]*X0[k]*Y0[k])
	
matrix[:,17] = X04Y0

#19th column

X03Y02 = []
for k in range(len(x0)*len(y0)):
	X03Y02.append(X0[k]*X0[k]*X0[k]*Y0[k]*Y0[k])
	
matrix[:,18] = X03Y02

#20th column

X02Y03 = []
for k in range(len(x0)*len(y0)):
	X02Y03.append(X0[k]*X0[k]*Y0[k]*Y0[k]*Y0[k])
	
matrix[:,19] = X02Y03

#21th column

X0Y04 = []
for k in range(len(x0)*len(y0)):
	X0Y04.append(X0[k]*Y0[k]*Y0[k]*Y0[k]*Y0[k])
	
matrix[:,20] = X0Y04

print(matrix)
len(matrix)
Out [1]:
[[1.         0.         0.         ... 0.         0.         0.        ]
 [1.         0.         0.05       ... 0.         0.         0.        ]
 [1.         0.         0.1        ... 0.         0.         0.        ]
 ...
 [1.         0.95       0.85       ... 0.61945344 0.55424781 0.49590594]
 [1.         0.95       0.9        ... 0.69447375 0.6579225  0.623295  ]
 [1.         0.95       0.95       ... 0.77378094 0.77378094 0.77378094]]
400
In [ ]: