高階程式設計技術 第十二周作業

2021-08-20 08:24:26 字數 1915 閱讀 2169

本週講了matplotlib,乙個用於繪製影象的庫。要求用numpy和matplotlib來完成三道練習題。

在區間[0,2]上繪製函式f(x) = sin^2^(x - 2)e^-x^2^^。要求加上軸標籤和標題。

matplotlib的畫圖用法跟matlib基本一樣,因此只需要按照matlib的步驟來繪製影象即可。由於只有一張圖,所以不需要使用子圖來繪製。

生成20x10的矩陣x,然後生成十維向量b,標準正態分佈向量z,計算y=xb+z。並使用b'=argmin||xb-y||~2~來估計b。並使用散點圖比較估計值和真實值。

可以使用numpy.linalg.lstsq來計算b'。同時可以通過更改繪圖的引數來得到散點x的效果。

import numpy

import numpy.matlib

import numpy.linalg

import matplotlib.pyplot as mplt

x = numpy.random.random((20, 10))

b = numpy.random.random((10, 1))

z = numpy.random.normal(size=(20, 1))

y = numpy.dot(x, b) + z

bp = numpy.linalg.lstsq(x, y)[0]

xais = range(0, 10)

mplt.plot(xais, b.flat, 'rx', label='true parameter')

mplt.plot(xais, bp.flat, 'bo', label='estimated parameter')

mplt.hlines(0, 0, 9, linewidth=1, colors='grey')

mplt.xlim((0, 9))

mplt.legend()

mplt.show()

選定乙個分布並生成10000個觀測值,使用histogram以bins=25為引數繪製圖,並加上密度的估計曲線。

高階程式設計技術 第十三周作業

本週需要學習如何使用scipy。scipy中包含了許多跟numpy一樣的函式,因此使用起來會有許多相似之處。exercise 10.1 least squares 生成乙個m行n列的矩陣,並要求m n。同時生成乙個m維向量。求解x arg minx ax b 2.該題可以使用lstsq來求解,sci...

高階程式設計技術 第十五周作業

本週簡單介紹了以下sklearn這個庫,簡單來說sklearn是基於numpy scipy等基礎數學庫的乙個機器學習庫,提供了幾種機器學習演算法。create a classification dataset n samples 1000,n features 10 split the datase...

第十二周作業

例題1 includeusing namespace std struct date struct student int main stu1,stu2 stu1.num 1001 stu1.age 20 stu2 stu1 cout includeusing namespace std struc...