当前位置:   article > 正文

MATLAB学习笔记——符号数学计算(Maple)_maple符号计算

maple符号计算

一、符号数学计算(Maple)

1、符号对象的创建

%符号变量的创建
clc;clear;
syms x y f(x,y) %多个符号变量sym要加s
f(x,y) = x + 2 * y
%在命令行窗口中如果直接输入一个没有进行初始化的变量,会出现无法识别的情况。
%而使用符号函数就可以让你在没有赋值的情况下去引用一个变量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
f(1,3)
%输出7
  • 1
  • 2

符号函数由于在运算的时候不需要对变量进行预赋值,会比较方便,同时,这也带来了缺点
1.计算以推理方式进行,因此不受计算误差累积所带来的困扰。
2.符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。
3.符号计算指令的调用比较简单,与数学教科书上的公式相近。
4.符号计算所需的运行时间相对较长。

2、符号表达式的操作(分解、展开、合并、简化)

(1)分解

clc;clear;
syms x y;
fun1 = x^3+3*x^2+3*x+1;
factor(fun1)        % 因式分解
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

factor(100)     % 将正整数按质因数分解
  • 1

在这里插入图片描述
(2)展开

fun2 = (x - 2)*(x - 4);
expand(fun2)    % 展开表达式
  • 1
  • 2

在这里插入图片描述
(3)合并

fun3 = x^2*y + y*x - x^2 + 2*x ;
collect(fun3,x)   % (不加参数)按默认变量合并同类项
  • 1
  • 2

在这里插入图片描述
(4)化简

fun4 = cos(3*acos(x));%有换元操作and和差化积,在MATLAB中一步到位
simplify(fun4)  % 化简表达式
  • 1
  • 2

在这里插入图片描述
**

3、函数极限(符号函数怎么去求函数极限?)**

示例:对于数列在这里插入图片描述 ,当n趋于无穷大时,求其极限。(很容易看出来是三分之一)

syms x;
f = x/(3*x+1);
limit(f,x,inf)
%ans=1/3
  • 1
  • 2
  • 3
  • 4

(1)左极限:
limit(expr,x,a,‘left’)
(2)右极限:
limit(expr,x,a,‘right’)

4、符号微分积分

(1)微分

1、求表达式:
+ln(z)
分别对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])    % 求全微分
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果就不po了

(2)积分
1、要求定积分还是要先求不定积分:
计算不定积分:
在这里插入图片描述

clc;clear;
syms x;
f=(x^2+1)/(x^2-2*x+2)^2;
I=int(f,x)%统一的形式求不定积分,结果少了个常数!
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
2、计算定积分:
计算定积分:(泊松积分)
在这里插入图片描述

K=int(exp(-x^2),x,0,inf) %先填下限,再填上限
  • 1

结果:
在这里插入图片描述
ps:对于K,是一个超越积分,即你算不出K的原函数,可以用软件去求解

**

5、函数的数值积分(补充)

**
(1)梯形法
使用梯形法计算定积分在这里插入图片描述

x = 0:pi/100:pi;
y = sin(x);
k = trapz(x,y)
  • 1
  • 2
  • 3

ans=
在这里插入图片描述

(2)自适应辛普森法(Simpson)(了解)

      quad(FUN,A,B) 已经淘汰
  • 1

(3)自适应Lobatto法(了解)

      quadl(FUN,A,B) 已经淘汰
  • 1

(4)高斯-勒让德积分法(了解)

      quadgk(fun,a,b) 使用高阶全局自适应积分和默认误        差容限在 a 至 b 间对函数句柄 fun 求积
  • 1

分。
(5)integral函数(计算广义积分,误差比较小/最常用)
在这里插入图片描述

clc;clear;
fun = @(x) exp(-x.^2).*log(x).^2;  %匿名函数,自适应函数,不用去管函数的步长
q = integral(fun,0,Inf)     % 计算 x=0 至 x=Inf 的积分。
  • 1
  • 2
  • 3

(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 限定的三角形区域计算积分。
q = integral2(fun,0,1,0,ymax)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

6、符号表达式的级数求和

在这里插入图片描述

clc;clear;
syms n; 
f=1/n^2;
S=symsum(f,n,1,inf)
S100=symsum(f,n,1,100)
  • 1
  • 2
  • 3
  • 4
  • 5

**

7、常微分方程的求解

**
在这里插入图片描述

clc;clear;
syms x y(x);
fun = diff(y,x)+2*x*y==x*exp(-x^2);
dsolve(fun,x)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/90181
推荐阅读
相关标签
  

闽ICP备14008679号