數學中差分和微分的詳細和應用


微分的定義 ( ̄︶ ̄)↗

  • 什么是微分:🤗

    • 古典的微積分學中,微分被定義為變化量的線性部分,在現代的微積分定義中,微分被定義為將自變量的改變量映射到變化量的線性部分的線性映射,這個映射也被稱為切映射。給定的函數在一點的微分如果存在,就一定是唯一的。
  • 什么是差分:😫(還有一個兄弟)

    • 差分又名差分函數或差分運算,是數學中的一個概念。它將原函數\(f(x)\) 映射到$f(x+a)-f(x+b) $差分運算,相應於微分運算,是微積分中重要的一個概念。差分的定義分為前向差分和逆向差分兩種。(尤其是在工科實踐中,差分的應用不亞於對微分的使用)。

      在社會經濟活動與自然科學研究中,我們經常遇到與時間\(t\)有關的變量,而人們往往又只能觀察或記錄到這些變量在離散的\(t\)時的值。

      對於這類變量,如何去研究它們的相互關系,就離不開差分與差分方程的工具。微積分中的微分與微分方程的工具,事實上來源於差分與差分方程.因此差分與差分方程更是原始的客觀的生動的材料。

  • 歸根結底,科學只是一種工具,科學源於生活實踐又需要落地於實踐,正如微分和差分的關系一樣,講到這里微分的定義是什么已經不重要了,你就把它當成自變量只變化了一點的時候,函數值的微笑變化就好了。👍

微分的幾何意義(*  ̄3)(ε ̄ *)

  • 幾何意義:
    • 微分的幾何意義就是:直角三角形的高\(dy\)等於正切值(斜率導數即\(f'(x)\))乘以該三角形的底邊\(dx\)。把這些微分即微小的\(dy\)累積起來就得到三角形的高或着說得到了函數值的本身即\(y=f(x)\)。微分是函數改變量的線性主要部分。微積分的基本概念之一。
    • QQ截圖20211116191211
    • 上圖中的\(dy\)就代表了微分😁,而△\(y\)代表的是差分😫,書中這里也叫△\(y\)增量

微分的基本公式和運算法則ヾ(*)))

  • 微分的基本公式和運算法則和導數的基本運算一致

    • 如果覺得這里總結的有不全面的,可以去參考上一期瀟婷姐姐寫的《高等數學——導數運算法則》

    • 導數運算法則

    • 打不開的小伙伴可以進公眾號自行瀏覽

      A 公眾號二維碼
      南理工樂學空間
      相關的運算 計算方法
      加法減法 直接提出法
      乘法除法 一項不動,另一項動
      三角函數 現成的公式
      復合函數 鏈式求導法則

利用微分進行近似計算 😢(這部分會了就通關了)

  • 例題:近似計算\(e^{1.006}\)的值:

  • 解:

    • \(f(x)=e^x\) ,則\(f’(x)=e^x\)

      \(\lim_{x\rightarrow1} f(1.006)=f(1)+f'(1)(1.006-1)\)

      ​ $ =e+0.006*e$

      \(=2.7346\)

本篇文章會同步到博客博文,博客地址:https://www.cnblogs.com/tinierZhao/

學習這部分內容的一些建議

  • 首先作為微分,其實從正常的理解順序來說,這一章應當是放在導數的前面去講的(所謂導數其實就是微商😶)
  • 其次,這一部分的內容核心思想就是兩部分
    • 一些基本求導公式的記憶
    • 復合函數
      • 鏈式求導法則
      • 微分的形式不變性
  • 多刷題永遠是學好數學的利器

一個關於差分的延伸ヾ(•ω•`)o

  • 微分和差分的核心思想在於變化量,當我們研究變化量的時候,不管這個數本身多大或者是多么小,只要他和前面(后面)的數沒有什么區別,或者區別不大。我們都可以將其進行忽略:

    • 例如股票的買賣收益,跟當前的實際價格無關,只跟你買入賣出的價差有關

    • 速度的大小和位移無關,只跟單位時間的位移有關

  • Hi~ o( ̄▽ ̄)ブ 相信你們理解的已經很好了,接下來再來一道題目:

  • 注:單純題目,值班時間仍然按照學導值班表正常執行

    • 現在本科生學業指導中心的正常值班計划為:
      • 每周五天,一天五大節課,每個學導一天最多只安排一次值班,並且非工作時間不可以逗留。
    • 天意哥哥為了讓大家可以在這里方便自習,想了一種新的方法,允許學導們可以在這里任意逗留。
    • 比如我的值班時間是周一晚上第五大節,但是我周一在學導中心待了一天,從第一大節到第五大節
    • 為了方便表示我們將一周的 5天*5大節課時進行編號 周一第一大節\(index=0\),周五最后一大節\(index=24\)
    • 我剛才的值班時間記作[\(index=0\)\(index=4\)] (上上行的黑體字)
  • 問題:現在一周過去了,在已知22位值班學導的值班時間的情況下,我能否設計一個簡單的計算方案,查看一下過去一周,某一天具體某一節課,有幾個學導正在值班呢?(不學C++同學可以跳過,直接看后面的核心原理即可)

    //利用差分數組,實現對區間問題的簡化分析
    typedef struct Guidance
    {
    	char pName[20];    //每個學導的姓名
    	int dutyTime[][2];  //存儲學導們的值班的時間,因為一周不止一次值班
    	struct Guidance* next;
    
    }GuiStu, * GuiLink;
    
    void InitList(GuiStu*& head)   //初始化信息
    {
    	.....
    		head = (GuiStu*)malloc(sizeof(GuiStu));
    	.....
    		for (int i = 0; i < 22; i++)  //22個學導
    		{
    			......   //依次鏈接上即可
    		}
    }
    
    void CalculTime(GuiStu*& copyHead)
    {
    	if (copyHead == NULL)
    	{
    		return;    //遞歸中止
    	}
    	else
    	{
    		DiffSolve(arrayToTalTime,copyHead);
    		.......
    		copyHead = copyHead->next;
    		CalculTime(copyHead);   //遞歸調用
    	}
    }
    
    void DiffSolve(int arrayTotalTime[], GuiStu*& copyHead)
    {
    	int length = sizeof(copyHead->dutyTime);  //值班的次數
    	int start = 0;    //開始值班時間
    	int end = 0;     //值班結束時間
    	for (int i = 0; i < length; i++)
    	{
    		start = *(copyHead->dutyTime + i)[0];
    		end = *(copyHead->dutyTime + i)[1];
    		arrayTotalTime[start] += 1;
    		arrayTotalTime[end + 1] -= 1;
    	}
    }
    
    int main()
    {
    	int arrayToTalTime[22] = { 0 };
    	.......
    }
    

    注:由於是高數推送,具體實現就不再進行展示了,這里想給大家分享的核心還是在於關注變化量可以大大簡化問題。

  • 不學C++的同學可以直接看這一部分:(^∀^●)ノシ

    • 現在有一串數據比如[0,0,0,0,0,0,0,0,0,0],初始都為零
      • 現在想在第2個位置到第5個位置都加5,可以怎么實現呢?
    • 方案1:
      • 依次在第2到第5的位置加上1
      • [0,1,1,1,1,0,0,0,0,0]
    • 方案2:
      • 只記錄數列中的變化(差分)😁
      • 鑒於2和5是邊界,我們可以這樣考慮:
        • 1——>2的過程和5——>6的過程發生了一次變化,其余位置都和上一個位置同步。
        • 於是我們采用一種新的記錄方法
          • [0,1,0,0,0,-1,0,0,0,0]
      • 最后將數據進行逐個累加就實現了還原(微分和積分的逆運算)
  • 這兩個題的數據量都不是很大,如果數據量大的情況,方案2效率遠遠高於方案1。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM