Пожалуйста, скажите мне, что не так в моем коде.Спасибо.
Это дает мне эту ошибку при запуске:
Traceback (most recent call last):
plt.plot(N, Test_Uniform(N))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2813, in plot
is not None else {}), **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/__init__.py", line 1810, in inner
return func(ax, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1611, in plot
for line in self._get_lines(*args, **kwargs):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 393, in _grab_next_args
yield from self._plot_args(this, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 370, in _plot_args
x, y = self._xy_from_xy(x, y)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 231, in _xy_from_xy
"have shapes {} and {}".format(x.shape, y.shape))
ValueError: x and y must have same first dimension, but have shapes (1000,) and (3,)
Это нужно сделать так:
import matplotlib.pyplot as plt
import numpy as np
N=np.random.rand(1000)
k_array=np.array([1,3,7])
def Test_Uniform(N):
test_uni=np.array([])
for w in k_array:
test_uni_random=0
for i in N:
test_uni_random += (i**w)/(len(N))
test_uni=np.append(test_uni,test_uni_random)
return test_uni
def Test_uniform_Deviation(N):
new_sum=np.array([])
for z in k_array:
test_uni_rand=0
for q in N:
test_uni_rand += (((q**z)/len(N))-(1/(1+q)))
new_sum=np.append(new_sum,test_uni_rand)
mean_sum=new_sum/len(N)
return mean_sum
plt.plot(N, Test_Uniform(N))
plt.xlabel('N')
plt.xscale('log')
plt.ylabel('series')
plt.show()
plt.plot(N, Test_uniform_Deviation(N))
plt.xlabel('N')
plt.xscale('log')
plt.ylabel('series')
plt.show()
для каждого k, построить среднее значение r^k
найдено против log(N)
вдоль линии ожидаемого предела 1/(1+k)
.и график среднего отклонения (вторая функция) против log(N)
.