MATLAB學習筆記 符號數學計算(Maple)

2021-10-05 09:07:59 字數 3550 閱讀 4853

%符號變數的建立

clc;clear;

syms x y f(x,y) %多個符號變數sym要加s

f(x,y) = x + 2 * y

%在命令列視窗中如果直接輸入乙個沒有進行初始化的變數,會出現無法識別的情況。

%而使用符號函式就可以讓你在沒有賦值的情況下去引用乙個變數

f(1,3)

%輸出7

符號函式由於在運算的時候不需要對變數進行預賦值,會比較方便,同時,這也帶來了缺點

1.計算以推理方式進行,因此不受計算誤差累積所帶來的困擾。

2.符號計算可以給出完全正確的封閉解,或任意精度的數值解(封閉解不存在時)。

3.符號計算指令的呼叫比較簡單,與數學教科書上的公式相近。

4.符號計算所需的執行時間相對較長。

(1)分解

clc;clear;

syms x y;

fun1 = x^3+3*x^2+3*x+1;

factor(fun1) % 因式分解

factor(100)     % 將正整數按質因數分解
(2)展開

fun2 = (x - 2)*(x - 4);

expand(fun2) % 展開表示式

(3)合併

fun3 = x^2*y + y*x - x^2 + 2*x ;

collect(fun3,x) % (不加引數)按預設變數合併同類項

(4)化簡

fun4 = cos(3*acos(x));%有換元操作and和差化積,在matlab中一步到位

simplify(fun4) % 化簡表示式

**示例:對於數列

syms x;

f = x/(3*x+1);

limit(f,x,inf)

%ans=1/3

(1)左極限:limit(expr,x,a,『left』)

(2)右極限:

limit(expr,x,a,『right』)

(1)微分

1、求表示式:

分別對x,y,z的偏微分、對z的二階偏導以及全微分。

clc;clear;

syms x y z;

f1 = exp(x*sin(y))+log(z);

diff(f1,x) % 對x求偏微分

diff(f1,y) % 對y求偏微分

diff(f1,z) % 對z求偏微分

diff(f1,z,2) % 對z求二階偏微分

jacobian(f1,[x y z]) % 求全微分

結果就不po了

(2)積分

1、要求定積分還是要先求不定積分:

計算不定積分:

i=int(f,x)%統一的形式求不定積分,結果少了個常數!

2、計算定積分:

計算定積分:(泊松積分)

k=int(exp(-x^2),x,0,inf) %先填下限,再填上限
結果:

ps:對於k,是乙個超越積分,即你算不出k的原函式,可以用軟體去求解

**(1)梯形法

使用梯形法計算定積分

x = 0:pi/100:pi;

y = sin(x);

k = trapz(x,y)

ans=

(2)自適應辛普森法(simpson)(了解)

quad(fun,a,b) 已經淘汰
(3)自適應lobatto法(了解)

quadl(fun,a,b) 已經淘汰
(4)高斯-勒讓德積分法(了解)

quadgk(fun,a,b) 使用高階全域性自適應積分和預設誤        差容限在 a 至 b 間對函式控制代碼 fun 求積
分。

(5)integral函式(計算廣義積分,誤差比較小/最常用)

fun = @(x) exp(-x.^2).*log(x).^2; %匿名函式,自適應函式,不用去管函式的步長

q = integral(fun,0,inf) % 計算 x=0 至 x=inf 的積分。

(6)多重積分matlab支援計算三重及以下的積分。

clc;clear;

%建立匿名函式。

fun = @(x,y) 1./( sqrt(x + y) .* (1 + x + y).^2 );%這裡x、y是數值,點不點乘沒有關係,不過要養成良好習慣嘛。

ymax = @(x) 1 - x;

%對 0≤x≤1 和 0≤y≤1−x 限定的三角形區域計算積分。

matlab 雙括號 matlab學習 符號計算

1 符號物件的定義 2 計算精度和資料型別轉換 1 矩陣 matlab大部分矩陣和陣列運算子及指令都可以用於符號如 inv,eig等。2 符號函式計算 syms x y 定義符號變數x y f x y 3 g x y 3 h f g s1 expand h 將h展開 s2 subs s1,y,x 2...

數學工具(五)符號數學

本節介紹專用於符號計算的sympy 庫。包括 1.基本介紹 2.方程式 3.積分 4.微分 sympy 引人了 新的物件類。最基本的是symbol 類,import sympy as sy x sy.symbol x y sy.symbol y type x sympy.core.symbol.sy...

C語言學習筆記1 有符號數和無符號數

c語言中 signed關鍵字宣告變數為有符號型別 unsigned關鍵字宣告變數為無符號型別 注意 c語言中只有整數型別能夠宣告unsigne變數 有符號數 signed 在計算機內部用補碼表示有符號數 最高位為 0,表示這個數為正數 最高位為 1,表示這個數為負數正數的補碼為正數本身 負數的補碼為...