Matlab基礎(四)

2021-03-02 Matlab techniques

目錄

前言

上一篇向大家介紹了

Matlab在高等數學上冊中的主要應用,

可以說一旦掌握這些指令的用法,大部分一元函數求極限、泰勒展開、求導、求積分等類別的題目都可以搞定。

本文將介紹高等數學下冊中一部分Matlab常用指令,並用剛剛結束的2021年考研數學部分題目作為例子來演示。

假如你是大學生(二)

我們知道,高等數學(或者微積分)上冊主要介紹一元函數的微積分,而下冊則主要是多元函數的微積分。

在Matlab中,關於多元函數微積分的許多指令與一元函數中的指令用法相似。下面將詳細介紹。

符號表達式

首先還是要用到符號表達式,用來定義一個符號函數。之前說過,所有的符號表達式的定義都要從syms指令開始,比如你的表達式包含x,y兩個變量,那麼首先需要定義符號變量:

syms x y

緊接著寫出你的符號表達式。下面以2021年考研數學一第17道大題為例,演示符號表達式的威力。

該題要求極限:

我們可以定義含有符號積分的表達式f:

f=(1+int(exp(x^2),0,y))/(exp(y)-1)-1/sin(y);
limit(f,y,0)

求出極限為

是不是hin簡單?

繪製曲面圖

學習多元函數微積分中很多時候需要「數形結合」,例如求曲面與平面的交線,三重積分中積分區域的確定等。

例如,以2021年考研數學一第19道大題為例,演示符號表達式快速繪製曲面圖的威力。

該題給出的曲線C是一個曲面:和一個平面的交線:

syms x y z
figure
fsurf(x^2+2*y^2-6,[-10 10 -10 10])
hold on
fmesh(30-4*x-2*y,[-10 10 -10 10])
axis square

其中,用到繪製符號三維曲面的函數fsurf和fmesh.得到:

這恰是空間中的一個橢圓。

解方程

解代數方程(組)的求解是個永恆的話題,線性方程組很好解,直接利用線性代數理論即可。對於非線性方程組,在matlab裡面可以利用solve指令求解符號方程組(可以得到絕對的解析解,但是只對一些不太複雜的方程組有效),複雜的非線性方程組可以利用fzero和fsolve求解數值解。

例如,我們求解方程組:

syms x y
eqn1=x+y^3==10;
eqn2=x+y==4;
sol=solve(eqn1,eqn2,[x,y])
sol.x
sol.y

得到:

可以看出,求出三組解,一組實數解,兩組複數解。

有時候我們不想要複數解,只想求實數解,這時候就需要用到一個很厲害的指令:assume(var,conditions),即:假定變量var具有condition條件,這些條件可以有real(實數),positive(正數),integer(整數)等等。

例如,對上面的問題,我們只要加上兩句指令:

assume(x,'real')
assume(y,'real')

求解結果就會只有實數解:

求偏導數

求偏導數是多元函數微積分最基本操作。求偏導還是用一元函數求導指令diff,只是需要嵌套使用。

2021年考研數學一第20大題為例,演示matlab在複雜符號函數求偏導數方面的威力。

該題計算,其中:

能不能利用格林公式需要判斷是否成立:

syms x y
P=(x*exp(x^2+4*y^2)+y)/(x^2+4*y^2);
Q=(4*y*exp(x^2+4*y^2)-x)/(x^2+4*y^2);
PyQx=diff(P,y)-diff(Q,x)
simplify(PyQx)

得到:

猛然一看好像求得的這串複雜結果並不為0,但是,

遇到複雜表達式一定要想到simplify可以來幫忙!

化簡過後得到:

完美!可以放心使用格林公式了

下一篇預告如果本文對你有用,歡迎點讚關注轉發!


相關焦點

  • Matlab基礎知識概述
    2002 年初夏所推6.5 版的最大特點是:該版本採用了JIT 加速器,從而使MATLAB 朝運算速度與C 程序相比肩的方向前進了一大步。從2006開始,MathWorks 公司宣布每年更新兩次版本,在已經有了matlab2006a, matlab2006b, matlab2007a, matlab2007b~matlab2012a等等。
  • MATLAB入門教程系列--基礎知識
    常用的基本數學函數及三角函數:  小整理(MATLAB常用的基本數學函數):abs(x):純量的絕對值或向量的長度angle(z):複數z的相角(Phase angle)sqrt(x):開平方real(z):複數z的實部imag(z):複數z的虛部conj(z):複數z的共軛複數round(x):四捨五入至最近整數
  • Matlab基礎(三)
    在matlab中求極限的指令為limit(f,var,a),即求的值。例如,我們求下面這個常見的極限syms xf=sin(x)/x;limit(f,x,0)得到結果在matlab中求導的指令為diff(f,var,n),即對函數f的某個變量var求n階導數。
  • Matlab基礎(一)
    ;命令行窗口:可以在>>後面任意輸入matlab指令,再按回車,立刻出執行結果。Matlab基礎用法常用指令Matlab的指令非常豐富,豐富到*只有你想不到沒有他做不到的!*上面的一些示例也看到了如何在命令行窗口輸入指令並得到計算結果,下面做簡要總結:假如你是小學生,你需要知道+,-,×,÷四個運算符在Matlab中分別對應+,-,*,/四個符號(小學就學微積分的孩子忽略...),這樣你就具有一款強大的計算器,例如
  • matlab vs R
    matlab 的開始,也是準備進一步與 R 語言做比較。而 matlab 的服務則是建立在用戶付費的基礎之上。你沒有付費,又哪來的享受到官方提供的維護服務。關於入門周期,matlab 要短於 R; 入門難度上, matlab 要比 R 簡單;新手遇到的問題的多少,matlab 用戶小於 R 用戶。
  • 【Matlab】Sound
    Tzvi講過,我們Matlab只學一個學期的基礎,後面因為不同人的發展方向不同,所以只能靠學習基礎的方式自行學習你需要用到的內容。sound在matlab裡更多的並不是用於製作音樂,而是提醒和分析聲音背後的數學,物理規律為什麼說是提醒呢,因為有些比較複雜的程序,往往需要matlab運算很久才會有結果,這時候人一般是不會盯著屏幕等著出結果,而是走開先去幹其他事。這時候就需要matlab在運算完後發出提示,最好是聲音。所以sound在matlab裡更多是用於提醒程序已運行完,結果已得出(一般用beep函數)。
  • 【Matlab】繪圖
    我們假設它應該能對我們的實驗分析起到很大的幫助(材料)我用的是matlab R2018b,所以本篇推文皆以這個版本為基礎(結論)就我自己這一年多的使用歷程來說,matlab這方面還是很贊的(胡扯一些其他的)反正我現在打算總結一下,一是看能不能給你們做實驗助一臂之力,二是未來我再次使用這個軟體也比較容易回顧上手
  • 關於Matlab的那些事
    1.前言我接觸Matlab的時間比較長了,最開始是在大學裡面的數學實驗課上了解了一些,學了些基礎的命令,後來參加過一次數學建模,又自學了點
  • matlab流程控制(二)
    感謝大家關注matlab愛好者公眾號,今天給大家介紹matlab流程控制語句第二部分。
  • 學習matlab必去的10大網站
    Help Center是MathWorks公司推出的集matlab參考文檔、程序示例、函數集合、視頻簡介、疑難解答於一體的綜合matlab學習平臺。在這裡不僅學習基礎matlab編程,還包括simulink、工具箱等高階matlab知識,是提升matlab編程能力不可不去的地方。
  • 大話matlabの通用對話框
    引入通用對話框對程序交互往往能起到錦上添花的作用,下面就來對matlab通用對話框進行一一介紹:一、文件選擇對話框 —— uigetfile函數功能:打開用於打開文件的對話框,獲取所需打開文件的路徑、文件名、篩選器索引等信息。
  • MATLAB課程之第三章 MATLAB程序設計(1)
    第二章講解了matlab中關於畫圖函數的使用方法。現在很多領域都要進行數據統計和分析,結果怎麼表示呢?自然用圖形表示。
  • 學習matlab的一點心得體會
    我接觸Matlab的時間比較長了,最開始是在大學裡面的數學實驗課上了解了一些,學了些基礎的命令,後來參加過一次數學建模,又自學了點
  • Matlab協調ROS程序: matlab 2015b + ros indigo
    不要糾結,試試matlab 與ros 協調吧, 雖然也不是那麼完美, 但ros的平臺運行加上matlab強大的數據處理,可視化繪圖相結合,只要你充分合理的使用,相應一定能助你一臂之力。         一年前就聽說matlab 有支持ros了,一直擱置沒去實際嘗試。最近由於調試ros程序需要,感覺matlab可以讓我查看算法過程中的數據,與可視化的數據分析更加方便,便開始了嘗試。
  • 觀點丨關於Matlab的那些事
    1.前言我接觸Matlab的時間比較長了,最開始是在大學裡面的數學實驗課上了解了一些,學了些基礎的命令,後來參加過一次數學建模,又自學了點
  • MATLAB基礎知識(三)
    >> s1='MATLAB';>> a=abs(s1)a = 77 65 84 76 65 66>> char(a+32)ans = 'matlab'(3)字符串的比較 字符串比較有兩種方法:利用關係運算符或字符串比較函數
  • matlab入門(四)-符號運算
    matlab符號運算1. 符號對象的建立:sym 和 symssyms 符號變量1 符號變量2 ...
  • Matlab:代數方程求解—solve命令
    那麼對於普通的代數方程,我們如何用matlab求解呢,這就是我們今天要討論的內容啦。一元一次方程先從簡單的開始,我們看看下面的一元一次方程,其中x是未知數。好了,大家一眼就能看出來這個方程的解是x=9。現在我們希望matlab來幫我們做這件事,這就要用到matlab 的 solve 命令了。
  • 想通過視頻自學MATLAB的同學戳這裡!
    11章:用GUI設計神經網絡MATLAB神經網絡教學視頻第13章:神經網絡應用實例《MATLAB圖像處理實例詳解》隨書附帶全部視頻下載(前四章無限制下載,其他章節提供給購買書籍用戶下載):MATLAB圖像處理實例詳解視頻第1章:數字圖像基礎MATLAB圖像處理實例詳解視頻第2章:MATLAB基礎
  • matlab和c語言的區別
    三、MATLAB語言與C語言的區別MatLab的底層是C寫的,C的效率比MatLab要高,但MatLab語法簡單多了,而且簡單,但執行效率不高 MATLAB是用於特定的方面的,比如說矩陣運算方面、DSP就很有優勢,而C語言不同,很多軟體的底層都是C編寫的matlab