您當前的位置:首頁 > 攝影

第一部分 準備工作

作者:由 東溪書院 發表于 攝影時間:2022-07-21

一 目標

在整個數學中,整除、同餘,微分、積分、線性空間、線性變換、群等幾個概念應該認為是最重大的幾個概念了。在數學文集的第一卷,藉助計算機工具,已經詳細研究了群論的基本問題。我們看到,計算機大大提高了人的分析能力和計算能力。那些本質上聯絡著整個宇宙的位數有幾百位的大整數,它們是群論不能繞過的星辰。在計算機強大的威力下,能夠收放自如地分析研究它們的性質和關係,從而幫助我們準確深入地理解群論的全部理論。

在第二卷,將要全力以赴研究“積分”的基本問題,如同群一樣,我們不得不承認這也是整個數學中最重大的概念之一。事實上,因為涉及無窮,涉及無窮中的無窮及控制等玄妙的問題,這個問題更當被認為在本質上聯絡著整個宇宙。因此它們毫無疑問就是哲學最硬核的層面。從阿列夫零可數無窮這個希伯來文化精神的玄妙概念開始,現代數學所描繪的關於無窮的全部思想,猶如人手中的玩具小球,化為浸入塵埃的超微細不可眼見難以思量的單元構成,再變為包含我們心念所能及的一切星球宇宙存在。所謂其大也無邊,其小也無內,其久也無終。

重要的不在於它是真理,而在於它能被認為是真理。重要的不在於我們已經越過阿列夫零,越過實無窮,越過實無窮的冪集基數的無窮,而在於我們在為“無窮”畫界限,為宇宙定準繩,謹慎遵循合理的規則而不是亂談,最終要落實到它們對人類的切實效用。可見,這是一個充滿挑戰的必定精彩非凡的問題。我們將同樣藉助計算機工具的強大分析和計算 能力,來梳理清楚這些思想的來龍去脈和秩序關係。

不應該在讀者還沒搞清根本脈絡關係之前面對一堆讓人生畏的習題,本卷將對大量的重要案例進行深入的分析和研究,包括所謂的一些習題。對現象和事實作出深入的分析和觀察,從中總結和建立相應的概念和原理。簡單說,複雜的事項,要全部分解為簡單的事實和聯絡。這樣,所論的問題就不再有本質性的困難。我不希望這些問題要放在一個有智力優越感的人群中討論。只要你耐心並且足夠堅韌,這些文章的門檻就是剛讀初中的孩子。

就實變函式論的本質而言,它陳述的正是現代數學對與無窮有關的積分概念,是怎樣已經遠遠超越了牛頓萊布尼茨阿基米德那些先輩樸素的無窮取極限的觀念。我們不是要來找茬,自標高明。不應該去爭論”一根針尖上到底有幾個天使在跳舞“,而是要來研究這些玄虛的概念和現實之間的聯絡作用,以及保持它們有序不亂的內在規則。絕不是出於無聊或僅僅是形式的美感,歸根結底,它們像複數一樣,你可以不接受它,你卻不得不承認它有如此精緻深刻優雅的內涵,並且有如此廣泛有益的作用。它雖然從虛渺中升起,但卻有無可爭辯的強大實力屹立在人們的面前。

二 所選的書籍

之前已經在讀周民強的《實變函式》。因為缺乏堅實的練習,於是回頭認真學習了《高等代數》。又藉助計算機軟體終於將Galois的群論給弄通了。可以這麼說,現在再來研習《實變函式論》,正當其時了。

另外再參考閱讀徐森林、薛春華的《實變函式論》,Gerald B 。Folland的《Real Analysis 》second Edition。考慮到數學研習的緩慢,有足夠時間弄清英文內容。

三 如何深入研習理解

與群論一樣,人們忽視了現代數學本質上聯絡著計算機的強力計算,沒有計算機的幫助,我們無法深入瞭解認識那些遠離人間煙火常識的冰冷星球。

所謂的視覺化,將抽象的概念用具象的模型表示出來,當然是有益的。但真正的問題,乃是我們對曲面的理解到底什麼是深刻的理解?並不是說將曲面畫出來展示給人看,我們就理解了曲面。只有將曲面用方整的網格有秩序地表達出來,才真正理解清楚曲面。另外,建立在整體層面上的一些控制引數,也將幫助我們認知。

計算機並不僅僅能用來完成從1到2到100到一個很大的數的變化下,系統變化的描述。它也能用來幫助我們瞭解認識這個變化過程中的本質性的規律。認識這些規律,就能超越無窮的界限。而不是機械地加1,加1,……,人能做加到1萬,計算機能加到1000萬。這個不會有特別價值。因此,對無窮的認知和超越,不在於一次又一次地增加數量,那個將無法超越。而是要學會如何找到有限架構中的適用於永遠的規律?

將曲面用有序的平面體系去逼近,這是一個顯然的方法。

分析出有限架構中的不變規律,從而超越無窮,才能使我們的認知獲得昇華。這些架構,通常是複雜的。

所有關於函式的描述,歸根結底,是需要給出一系列明確的可理解的案例。我們需要考察其系統的案例。典型的有本質意義的案例。如果容易構建這些案例,人們早構建了。但計算機將幫助我們構建它們。

使用的軟體包也是需要考慮的了。

任何包都不能從根本上獲得自由,還不如自己來從最基礎的部分構建。正如自己在sympy基礎上建構的群運算體系,自己根據需要建立所需的函式。雖然作為一個軟體體系有點亂,恰恰這正好提出了面向物件程式設計的問題,只有基於整體系統的程式設計,才更能利於梳理整體上的一些問題。與很多人喜歡拿別人現成的包不同,我覺得與其花時間精力去學一個難以捉摸控制的包,不如自己在最基本的一些包上建立新世界。從這個角度,我寧願在cad繪圖系統和python直接建立聯絡的pyautocad上進行繪圖。不依賴別人給出影象,而是自己來建立三維和二維影象。一張連續的油猾的影象沒有什麼太大的價值,我需要的是從

最基礎的幾個關鍵點到一系列的控制點到最終的大量基礎點的控制體系

關於函式,我們不僅僅需要一張影象,而是需要一個深刻的控制體系。我們想給它分類,想觀察它的形態,性質,表現。最重要的謎題,對那些無窮遠的玩藝,那些關於針尖上的天使的虛渺的想象,如何建立確實可靠的信心?

在深入研習群論之前,我已花了兩三個月研習了pyautocad的繪圖問題。現在可以排上用場了。如何驅動由box構成的簡單影象系統逼近一個人體?我們需要在資料和形體之間建立穩固可靠的聯絡。

四 函式作圖

對函式的研習應該從基本的作圖開始。作圖不是拿個軟體包一輸入就產生影象。這樣不會有深刻認識。恰恰應該一點一畫畫出來,這才代表著對它的認識上的深刻。二維影象的作圖還是比較簡單的,三維影象的作圖,參考二維的成果,應該從如下幾個步驟入手:

1 確立x,y,z三個變數的範圍邊界,這樣實際上我們是在一個box來思考。確定每條邊的均分寬度,也就是步長。

2 平行xoz平面和yoz平面的豎向切割,代表的意義就是分別針對x,y的偏導數。當然,偏導數是無限想象的結果。平行xoy平面切割,就是等高線的結果。這也是對平面的一種深刻理解。無窮小的想象是以有限架構的體系為基礎的,認識清楚這個有限標準體,再讓它沿著無窮方向有序推進乃是微積分學的根本精神。

因此,對曲面的認知,基於不同數量的切割面。為了簡化問題,我們假定這個切割是均衡的,按照固定步長的。隨著切割數量的無限增加就得到了精確的結果。

因此,針對一個以函式表達的曲面,我們確定一個box的大小和切割步長,就能對曲面有不同程度的逼近認知和理解。這些切割面將和曲面產生交點,這些交點將能形成簡單的平面小碎片堆積成整個近似體系。

三維作圖應該將它畫出來。

3 考慮無窮大值的作圖。能不能這樣定標準,一個10的50次方的數值,或者連續幾個這樣的數值單調變化。我們認為這附近的這個點就是無窮大的值了。也沒有辦法去做這樣大尺度的影象,只要做出遠超一般值的線段,就可以了。歸根結底,做不出無窮大,但可以做出這種感覺氣勢,再借助代數和邏輯想象來理解它。

4 考慮自然數可數無窮序列的作圖。同樣沒法做出無窮個點,但是沿著指數冪不斷遞增的大數序列,能夠代表這種感覺氣勢。

5 考慮有理數集上的可數無窮個點的作圖。沒法做出所有點,但任意給出一個有理數,我們總能給出一個函式值的影象。那麼讓x遍歷有代表性的有理點集,讓x在區域性點與無窮多個有理點上的值比較,這些都能使我們加深對函式性質的理解。

6 同樣,考慮包含某個區域一切實數的點的作圖。我們仍然是將有代表性的有限點的性質代替無窮點的性質。正如我們在有限點中預期一個球面上的點不會突然升高或降低到某個地步。

實際的二維作圖程式出乎意料的簡單。簡單幾行程式碼就解決了幾乎所有的函式作圖問題。使用Decimal數甚至還能得到任意想要的精度來理解區域性點。按照推想,統一的三維作圖程式應該是一樣的情況。

# -*- coding: utf-8 -*-

# 自定義影象控制系統 20220712

‘’‘

本影象控制系統主要用於研究函式作圖,影象生成,三維模型控制

不要拒絕任何有價值的軟體包

但更不應忽視,要面向荒漠建立新世界

重要的不是作為個體我們能作出有多大價值的東西,而是我們會發現僅僅屬於我們個體的有價值的東西

’‘’

# 一 匯入

import subprocess

import os

import MKwjcz

from pyautocad import Autocad,APoint

import pyautocad。types

import win32com。client

import pythoncom

import math

import shutil

import time

import re

from sympy import *

from PyPDF2 import PdfFileWriter, PdfFileReader

# 二 資料型別函式轉換

def vtpnt(x, y, z=0):

“”“座標點轉化為浮點數”“”

return win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_R8, (x, y, z))

def vtobj(obj):

“”“轉化為物件陣列”“”

return win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_DISPATCH, obj)

def vtFloat(list):

“”“列表轉化為浮點數”“”

return win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_R8, list)

def vtInt(list):

“”“列表轉化為整數”“”

return win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_I2, list)

def vtVariant(list):

“”“列表轉化為變體”“”

return win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_VARIANT, list)

def ConvertArrays2Variant(inputdata, vartype=“Variant”):

import pythoncom

if vartype == “ArrayofObjects”: # 物件陣列

outputdata = win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_DISPATCH, inputdata)

if vartype == “Double”: # 雙精度

outputdata = win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_R8, inputdata)

if vartype == “ShortInteger”: # 短整型

outputdata = win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_I2, inputdata)

if vartype == “LongInteger”: # 長整型

outputdata = win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_I4, inputdata)

if vartype == “Variant”: # 變體

outputdata = win32com。client。VARIANT(pythoncom。VT_ARRAY | pythoncom。VT_VARIANT, inputdata)

return outputdata

# 三 建立連線

#可以在沒有開啟任何別的程式的前提下自動開啟cad檔案,但這個操作難度大,也沒有本質的意義

#要先開啟cad檔案,再執行程式

#由於pyautocad開發的時候cad的版本還不高,所以cad版本越高問題就越大

#有些命令必須使用win32,有些又必須使用pyautocad。所以兩個都要連上

#win32連線

acad = win32com。client。Dispatch(“AutoCAD。Application”)

acad。ActiveDocument。Utility。Prompt(“Hello AutoCAD\n”)

mp = acad。ActiveDocument。ModelSpace

print(acad。ActiveDocument。Name)

# 再考慮用pyautocad連線

pyacad = Autocad(create_if_not_exists=True)

pyacad。prompt(“Hello, Autocad from Python\n”)

# 這個模板足以解決最根本的煩惱,copy這個模板,然後繼續寫你自己的程式。這都是那些有著奮鬥精神的同道們的貢獻

#有多個檔案時這個操作有用

acad。ActiveDocument。Application。Documents(‘TuXiang。dwg’)。Activate()#設為當前

print(pyacad。doc。Name)

# 四 模型空間轉向當前檔案的模型空間

mp = acad。ActiveDocument。ModelSpace

#定義函式

x,y,t = symbols(‘x y t’)

# 五 基本繪圖函式

# 1) 繪製兩點間的直線段

# 從Pt1和Pt2繪製直線段

P1 = vtpnt(0, 0)

P2 = vtpnt(10000, 70000)

def linetwopoint(Pt1,Pt2):#輸入兩個點

LineObj = mp。AddLine(Pt1, Pt2)

# 2) 繪製二維函式影象

def huitu_2wei(A,B,t,fx,jih):#A為x起始點,B為x終點,t為x的每個步長,fx為關於x的函式,jih為多項式標識,如是多項式就輸入1,否則就輸入0

#執行結果就是二維函式影象

k=0

X1=A

X2=B

T=t

fu = jih

if fu ==1 :

P1 = vtpnt(X1, expand(fx。subs(x,X1)))

P2 = vtpnt(X1+T, expand(fx。subs(x,X1+T)))

else:

P1 = vtpnt(X1, fx。subs(x,X1)。evalf())

P2 = vtpnt(X1+T, fx。subs(x,X1+T)。evalf())

linetwopoint(P1,P2)

while True:

k = k+1

linetwopoint(P1,P2)

P1 = P2

if fu == 1:

P2 = vtpnt(X1+(k+1)*T, expand(fx。subs(x,X1+(k+1)*T)))

else:

P2 = vtpnt(X1+(k+1)*T, fx。subs(x,X1+(k+1)*T)。evalf())

if int((X2-X1)/T) < k+1:

break

# 3) 繪製三維函式影象

第一部分 準備工作

上圖的影象就是下面命令的結果:

>>> huitu_2wei(-100,100,0。1,2*x**2+8,1)

>>> huitu_2wei(-100,100,0。1,sin(x)+2,1)

>>> huitu_2wei(-100,100,0。1,15*sin(x)+2,1)

獨立建構一套影象體系的意義,還在於可以由此擴充套件到對二維三維繪畫的研究。程式能夠幫助我們超越時空的侷限,使我們不用花很多的時間精力去學習駕馭物質物理上的事物。這意味著我們可以完成一幅意義深刻的作品,它最後的靈魂不是來自於物體本身,而是來自於心靈和物質的同時作用。

五 根本的思想脈絡

我們知道點的面積是0,而一個邊長為1的正方形的面積為1。正因為點的面積為0,那麼去掉這個正方形中可數無窮個點,它的面積應該還是為0。甚至我們可能構造不可數無窮個點,它所佔據的面積還可能是0。這個事實要求我們重新考察函式的定義和函式的積分,以使得它們能運用於更廣泛的領域。

就主要線索而言,我們要在常規的函式影象中沿著一些可靠的無窮點摻入大量的點,改變函式的定義,但函式卻仍然是可以積分的。對這些無窮點小心謹慎操作,遵循可靠的邏輯架構。否則我們就會陷入無窮的亂談之中。這個論題的核心關鍵還是我們到底能提出多少個典型的病態案例。我們對函式性態的理解認知,歸根結底建立在每一個點上。也建立在對每個區域性點區域的特徵的理解上。這裡要求我們打破常規的認識,接納在很小的區域性區域裡產生了劇烈變動的函式。例如其餘點都為0值,卻突然在0點取值無窮大的

\delta

函式。作為靜態的對應,以無窮大對應自變數的0值,還是很牽強的。但是從數的拓展看,我們接受一個需要無窮才能靜下來的無理數是一個數,那我們同樣應該接受需要無窮個步驟的逼近才能靜下來的函式也 是函式。因為

\delta

函式不是別的,它是一系列函式的無窮逼近而已。這個被無窮逼近的函式,按有限來說總是在無窮的彼岸。但是我們超越無窮,就接納它成為與有限元平等的一元。於是

\sqrt{2}

\frac{1}{3}

一樣也是數,

\delta

函式這個怪異的函式也被接納為函式。

Lebesgue積分的思想大抵也不過如此。就是要考慮接納這些定義在怪異的無窮點集上的函式,它們仍然具有積分的意義,這個意義就是一個面積為1的圖形,去掉可數無窮甚至非可數無窮個點,仍然有面積為1的意義。對常規的有限靜止和無窮的運動兩者,都平等以待。我們接納那個需要無窮才能靜下來的存在,它的確在彼岸的永遠。但接納它,只要它沒有產生不可接受的矛盾,並在現實有用它就是合法的了。

我認為這是一個普遍性的原理:它們實際上需要藉助一個無窮的序列逼近才能成其為有意義的物件,它們並不在有限的此岸與普通的有限特徵的物件平等共存。但是藉助無窮的超越,我們又要把那個無窮遠的彼岸存在納入眼前。此時,無理數也是數,

\delta

函式也是函式,本質上作了無窮次黎曼積分的Lebesgue積分也就是積分了。當然這些想法有可能並不正確,可在後續繼續探討。

我甚至懷疑人們是不是過於誇大了實變函式論的困難?就其本質,也就是要在一個更廣義寬泛的條件下考察積分的意義。這的確是一個關於函式的精彩非凡的問題之一。據我所知,牛頓萊布尼茨的微積分基本定理顯然是關於函式的精彩非凡的問題之一。泰勒級數是精彩非凡的問題之一,傅立葉級數是精彩非凡的問題之一,還有複變函式的基本原理,這些都是關乎函式的非凡的思想。而Lebesgue積分不過是其中之一。

六 對Riemann積分的理解

1

對Riemann積分的最粗略自然的理解,應該是從連續函式

f(x)

在區間[a,b]所限定面積的認知。這相當於我們建立的自然數整數的認知。這個認知是極為樸實自然的,它著重要解決非線性變化的函式形成的曲線所能限定的面積。我們對面積的最初步的認知是建立在簡單的三角形長方形等幾何圖形上。現在要對變化的曲線所圍成的面積進行計算,這需要牛頓萊布尼茨的思想。這在整個數學史上就是最重大的思想之一。

對自變數

x

的區間[a,b]進行細分,逐漸細分趨向0。每個小區間細分的寬度,與這個小區間上的一個函式值相乘就是這個小區間對應的矩形面積。將所有這些面積加起來,隨著細分數值的加大,其求和麵積越來越穩定趨向一個極限值,這就是函式在這個區間[a,b]的積分。

比較嚴謹說,Riemann可積包含如下幾個基本概念和關係。

i 函式

f(x)

的自變數

x

所在的區間為[a,b]。(不難想到有些函式可能在端點無界因此無定義但整個圖形的積分卻有意義,因此閉區間的條件本質上仍然可以鬆動)。

ii

f(x)

在[a,b]上有界,即

f(x)\leq M

iii 對[a,b]進行n個劃分,劃成n個小區間

[x_{i-1},x_{i}]

,區間長為

\Delta x_{i}

。均衡相等只是其中的特例。這稱為一個劃分

P

。每個小區間上任意取值(這包含了隨機性)

\varepsilon_{i}

。所有小區間有一個最大的並記其長為

\lambda

iv 和式

\sum_{i=1}^{n}{f(\varepsilon_{i})}\Delta x_{i}

\lambda\rightarrow0

時有極限存在,且此極限與劃分無關,與

\varepsilon_{i}

的取值無關,則稱函式

f(x)

在[a,b]上Riemann可積。

v 考慮每個小區間上函式的上確界為

M _{i}

,下確界為

m_{i}

,相應劃分

P

定義和式

S_{1}(P)

=

\sum_{i=1}^{n}{M_{i}}\Delta x_{i}

以及

S_{2}(P)

=

\sum_{i=1}^{n}{m_{i}}\Delta x_{i}

\lambda\rightarrow0

時其極限分別為

L

l

。則

f(x)

Riemann可積的充分必要條件是

L=l

坦率說,如上定義和分析,並非極複雜的事實。如果函式限定在連續函式,那麼一切都是和諧的也是平易的。偏偏這個積分本身又對連續性進行了突破。因為很顯然,一個連續函式重新改造,在有限點上變更定義使之不連續,積分仍然存在。甚至一個特殊的函式,是在無限點上改變了定義,但積分仍然存在。

R(x)=\frac{1}{p} |  x=\frac{q}{p},p,q

是整數且互素;不妨認為

x=1

時,有

R(x)=1

R(x)=1|x=0;

R(x)=0|x

是無理數

則上述函式仍然是Riemann可積的。

考慮將[0,1]分成100等份。則每個小區間端點的函式值都是1/100,除了0點和1點。函式值在1/100和2/100之間,能取到的最大值是多少呢?假如它大於1/100,則取得該值的有理數一定可以約簡為九十九分之幾等等,而且其間的所有有理數分子都是比分母小的。這就意味著有一個分母小於100,分子小於100的分數在1/100和2/100之間。例如1/99,此時函式值為1/99。分析表明1/51是其最大值。而約簡後分母大於100的有理數,其分子無論為多大函式值總是取為1/101,1/102等,它的值總是小於1/100。因此1/51是其最大值。繼續考察區間[2/100, 3/100],最大值是1/34。區間[98/100, 99/100],其值要大於端點的1/100,則其約簡後的分母必小於100,考察98/99在這個區間,而縮減分母,50/51在該區間,函式最大值為1/51。任取一個區間,例如[23/100,24/100],如果約簡後分母大於100則無需考慮,因此我們只考慮約簡後分母小於100但又落在該區間的有理數。23/99的確落在該區間,也大於了1/100,但還沒有取最大值。12/51將落在該區間並取得1/51。想要超過它,只能在50以下為分母的有理數又落在區間[23/100,24/100]。6/25將更大 。

從定義來看,構成面積的兩大要素,一個是函式值,一個是自變數值。如果那些不連續的異常值其自變數所分佈的區域,實際上含在一個長度為0,嚴謹說是長度任意小的區間序列中,則積分值不受影響。如果函式值取為無窮大,將使計算受到影響從而積分不存在。

因此,Riemann積分並非是一個追求某種完美性意義的積分,反而是包含著不確定的無窮大因素的積分。這種不成熟和侷限性,來源於我們對積分本身的意義,對無窮的操控仍然不清楚。限制無窮,只考慮有限的因素,那麼它將幾乎僅適用於連續函式,可是這違反“微積分本來就是對無窮的大膽接納”。引入無窮,擴充套件函式的範圍,使積分的意義到達某種完美性,就能真正貫徹微積分思想的本質:對無窮的操控達到極致。事實正是如此,繼續發展的Lebesgue積分就貫徹了這一理念。

與複數一樣,這樣做的合法性,僅僅在於它在不否定已有知識的前提下是有用的。它屬於一種文化,一種信念,不相信可超越無窮就沒法進一步深入它的內容。

f(x) =x^{2}sin\frac{1}{x^{2}},0<x<=1;

f(x)=0,x=0。

標簽: 函式  100  無窮  pythoncom  vt