數模-符號運算(Matlab定義符號變數和簡單的運算)
阿新 • • 發佈:2022-05-06
程式碼
%% 符號變數的建立和簡單運算 % 程式碼參考:我要自學網的龔飛老師《Matlab2016數值計算與智慧演算法》 clear;clc % 簡單符號變數的建立 syms x % 觀察工作區, sym是symbolic的縮寫 syms a b c % 符號方程的建立,兩種方法 syms a x y = a*x+x^2 % y = str2sym('a*x+x^2') %Matlab 2017b 版本後推出 % 符號矩陣 syms alpha M = [cos(alpha) -sin(alpha); sin(alpha) cos(alpha)] %% 簡單運算 syms a b c d e y = a + b % a + b x = c - d % c - d y1 = x*y % (a + b)*(c - d) y2 = y1/y % c - d y3 = y1^3 % (a + b)^3*(c - d)^3 y4 = sqrt(y3) % ((a + b)^3*(c - d)^3)^(1/2) y5 = exp(y4) % exp(((a + b)^3*(c - d)^3)^(1/2)) %% 符號表達式的整理 clear;clc % 化簡 syms a y=(cot(a/2)-tan(a/2))*(1+tan(a)*tan(a/2)) simplify(y) % 2/sin(a) %% 因式分解 factor(12) % 對常數進行因式分解 % 2 2 3 syms m n x y = -24*m^2*x-16*n^2*x factor(y) % [ -8, x, 3*m^2 + 2*n^2] y1=m^3-n^3 factor(y1) % [ m - n, m^2 + m*n + n^2] %% 多項式展開 syms a x y = a*(x^2-a)^2+(x-2) expand(y) % a^3 - 2*a^2*x^2 + a*x^4 + x - 2 %% 合併 syms x y z = (x+y)^2*y+5*y*x-2*x^3 % expand(z) - 2*x^3 + x^2*y + 2*x*y^2 + 5*x*y + y^3 collect(z,x) % y*x^2 - 2*x^3 + (2*y^2 + 5*y)*x + y^3 collect(z,y) % y^3 + 2*x*y^2 + (x^2 + 5*x)*y - 2*x^3 %% 計算分子與分母 % [z1,z2] = numden(2.5) % 會報錯,因為numden的輸入變數不能是數值,只能是符號變數 % ans = sym(2.5); % sym函式可以將數值2.5轉換為符號 [z1,z2] = numden(sym(2.5)) % 對常數計算分子與分母 % z1 = 5 % z2 = 2 syms x y z = 1/x*y+x/(x^2-2*y) [z1,z2] = numden(z) %z1分子,z2分母 % z1 = - x^2*y - x^2 + 2*y^2 % z2 = x*(- x^2 + 2*y) %% 讓結果顯示的更加自然 syms x y M = (1/x*y+x/(x^2-2*y)-x^2/(3+y)^2)^2; expand(M) % y^2/x^2 + x^4/(y^4 + 12*y^3 + 54*y^2 + 108*y + 81) + (2*x^3)/(- x^2*y^2 - 6*x^2*y - 9*x^2 + 2*y^3 + 12*y^2 + 18*y) - (2*y)/(- x^2 + 2*y) + x^2/(x^4 - 4*x^2*y + 4*y^2) - (2*x*y)/(y^2 + 6*y + 9) mupad % 未來的版本可能會移除這個工具箱,可以點選Matlab的主頁,新建實時指令碼
matlab最新的版本已經去除了mupad工具箱
新建實時指令碼
把一連串的公式貼上進去
點選執行