高階程式設計作業第十一次作業

2021-08-20 11:24:33 字數 1815 閱讀 1572

exercise 10.1:least squares

generate matrix a ∈ rm×n with m > n. also generate some vector b ∈ rm.

now find x = arg minx ||ax − b||2.

print the norm of the residual

用numpy裡的random的rand和mat生成矩陣,最後用最小二乘法和乘法函式dot和取逆函式inv算出x。

from numpy import *

from scipy.linalg import *

from scipy.stats import *

import math

m,n=0,1

while(n>m):

m=int(input("input m "))

n=int(input("input n "))

if(n>m):

print("invalid input,input m,n again")

a=mat(random.rand(m,n))

b=mat(random.rand(m,1))

x=dot(dot(inv(dot(a.t,a)),a.t),b)

print(x)

exercise 10.2:optimization

find the maximum of the function

f(x) = sin^2(x − 2)e^(−x^2)

由於只知道最小值的函式,要先對函式取反,再用scipy.optimize裡的fmin找到最小值對應的x值,最後把x對應的函式值求出來再取反就是答案。

from numpy import *

from scipy.linalg import *

import scipy.optimize as opt

from scipy.stats import *

import math

def liangjan(x):

return -((math.sin(x-2)**2)*math.exp(-(x**2)))

x=opt.fmin(liangjan,1)

print("maximum is : ",liangjan(x)*-1)

最後算出來的最大值是 0.9116854101234255

exercise 10.3:pairwise distances

again, make sure you make use of scipy』s functionality instead of writing your own routine.

用scipy.spatial.distance裡的pdist算距離,再用squareform轉成矩陣形式的距離列印出來。

from numpy import *

from scipy.linalg import *

from scipy.spatial.distance import *

from scipy.stats import *

import math

m=int(input("input m "))

n=int(input("input n "))

x=mat(random.rand(m,n))

cities=pdist(x)

ans=squareform(cities)

print(ans)

高階程式設計技術第十一次作業

11 1 城市和國家 編寫乙個函式,它接受兩個形參 乙個城市名和乙個國家名。這個函式返回乙個格式為city,country 的字串,如santiago,chile 將這個函式儲存在乙個名為city functions.py的模組中。建立乙個名為test cities.py的程式,對剛編寫的函式進行測...

第十一次作業

問題 答案這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 精通c語言,深入了解c語言的程式設計,學會自己編寫程式 這個作業在那個具體方面幫助我實現目標 進一步的的認識函式,學習函式的定義 呼叫和申明,並學習變數的作用域 生存週期和儲存型別 參考文獻 1.pta實驗作業...

第十一次作業

這個作業屬於哪個課程 c語言程式設計ll 這個作業要求在 我在這個課程的目標是 熟練掌握運用各語法 這個作業在哪個具體方面幫助我實現目標 巨難的程式設計題 參考文獻 題目內容描述 本題要求實現乙個函式,判斷任一給定整數n是否滿足條件 它是完全平方數,又至少有兩位數字相同,如144 676等。1.1....