函数用法记录——MATLAB符号计算

张开发
2026/6/7 22:12:49 15 分钟阅读
函数用法记录——MATLAB符号计算
本文是学习中国大学MOOC中南大学的科学计算与MATLAB语言 课程后做的课程学习笔记特此声明。符号对象symsym用于创建符号变量或符号表达式。可以将数值、字符串或表达式转换为符号形式。例如x sym(x); % 创建符号变量x expr sym(x^2 2*x 1); % 创建符号表达式 t sym(2); %t赋值为2 sin(sym(pi/3)) % 输出的是3^(1/2)/2 sin(pi/3); %输出的是一个小数是数值 a 5; b -8; x sym(a); y sym(b); w (ab)*(a-b); %输出为-39 s (xy)*(x-y); %输出为a和b构成的一个式子 eval(s); % 输出的是39将表达式带入数值后计算出来有关系运算函数也可以使用运算符。symssyms是快速创建多个符号变量的快捷方式。可以同时定义多个符号变量无需显式调用sym。例如syms x y z; % 同时创建符号变量x、y、zevaleval用于计算符号表达式的数值结果。可以将符号表达式转换为数值形式。例如syms x; expr x^2 2*x 1; result eval(subs(expr, x, 2)); % 计算x2时的表达式值assumeassume用于为符号变量设置假设条件例如定义变量的范围或性质。例如syms x; assume(x 0); % 假设x为正数 assume(x, positive); % 指定表达式x属于集合positivefactorsfactors用于对符号表达式进行因式分解。例如syms x; expr x^2 - 4; factor_expr factor(expr); % 分解为(x-2)(x2)expandexpand用于展开符号表达式将乘积或幂展开为多项式形式。例如syms x; expr (x 1)^2; expanded_expr expand(expr); % 展开为x^2 2x 1collectcollect用于合并符号表达式中同类项可以指定合并的变量。例如syms x y; expr x*y x^2 2*x*y; collected_expr collect(expr, x); % 按x合并 sym a; s a^2 2*x 1; collect(s); % 对s合并因为这里面只有一个符号变量所以直接说也行numdennumden用于提取符号表达式的分子和分母。例如syms x; expr (x^2 1)/(x 1); [n, d] numden(expr); % 分子和分母coeffscoeffs用于提取符号多项式的系数。可以指定变量和排序方式。例如syms x; expr 3*x^2 2*x 1; coefficients coeffs(expr, x); % 提取系数simplifysimplify用于简化符号表达式自动应用多种数学规则。例如syms x; expr sin(x)^2 cos(x)^2; simplified_expr simplify(expr); % 简化为1sym2polysym2poly用于将符号多项式转换为系数向量。例如syms x; expr x^2 2*x 1; coefficients sym2poly(expr); % 转换为[1 2 1]poly2sympoly2sym用于将系数向量转换为符号多项式。例如coefficients [1 2 1]; expr poly2sym(coefficients, sym(x)); % 转换为x^2 2x 1symvarsymvar用于查找符号表达式中的变量。例如syms x y z; expr x^2 y*z; variables symvar(expr); % 返回[x y z] vmain symvar(expr, 1); %返回x因为这是主变量符号微积分limit 函数用于计算符号表达式的极限。语法格式为limit(f, x, a)计算当x趋近于a时f的极限。示例syms x; f sin(x)/x; limit(f, x, 0) % 返回 1 limit(f, x, 0, right) %右极限左极限变成leftdiff 函数用于求符号表达式的导数。语法格式为diff(f, x)计算f对x的一阶导数。示例syms x; f x^3 2*x^2; diff(f, x) % 返回 3*x^2 4*xdiff(f, x, n)计算f对x的n阶导数。int 函数用于计算符号表达式的不定积分和定积分。语法格式为int(f, x)计算f对x的不定积分。示例syms x; f 3*x^2 4*x; int(f, x) % 返回 x^3 2*x^2int(f, x, a, b)计算f对x从a到b的定积分。示例syms x; f exp(-x^2); int(f, x, 0, inf) % 返回 sqrt(pi)/2级数symsum 函数symsum是 MATLAB 中用于计算符号求和的函数适用于对符号表达式进行求和操作。其语法如下S symsum(f, k, a, b)f需要求和的符号表达式通常包含求和变量k。k求和变量符号变量。a求和的下限。b求和的上限可以是无穷大inf。示例 计算从k1到k10的k^2的和syms k S symsum(k^2, k, 1, 10)taylor 函数taylor是 MATLAB 中用于生成符号表达式的泰勒级数展开的函数。其语法如下T taylor(f, x, a, Order, n)f需要展开的符号表达式。x展开变量符号变量。a展开点默认为 0即麦克劳林级数。Order, n指定展开的阶数默认为 6。示例 对sin(x)在x0处展开 5 阶泰勒级数syms x T taylor(sin(x), x, Order, 5)符号方程求解solve 函数solve是 MATLAB 中用于求解代数方程或方程组的函数。它能够处理线性方程、非线性方程以及符号表达式。语法S solve(eqn, var) S solve(eqn1, eqn2, ..., eqnN, var1, var2, ..., varN)示例syms x eqn x^2 2*x 1 0; sol solve(eqn, x);solve可以返回实数或复数解适用于多项式方程、超越方程以及多变量方程组。如果方程无解或无法找到解析解可能返回空解或数值近似解。有时候solve函数得出的结果不对。dsolve 函数dsolve用于求解常微分方程ODE或微分方程组支持解析解计算。语法S dsolve(eqn) S dsolve(eqn1, eqn2, ..., eqnN, cond1, cond2, ..., condN) S dsolve(eqn1, eqn2, ..., eqnN, cond1, cond2, ..., condN, v) %v是指定方程的变量也可以不带示例syms y(t) ode diff(y, t) t*y; sol dsolve(ode);

更多文章