台湾国立大学郭彦甫Matlab教程笔记(19)symbolic differentiation and integration
下面我们再把symbolic的部分再做一点延伸
symbolic 除了方程求根之外,还可以求积分,微分等。
symbolic differentiation:diff()
diff回顾,diff是求一个vector中相邻entry的差算出来
举例: calculate the derivative of a symbolic function:求下面符号函数的导数
例程代码:
syms x
y=4*x^5;
yprime=diff(y)%英文prime有撇的意思
我们可以直接算出来微分值
作业题:用symbolic 的形式去解微分
我的练习
第一道题
syms x;
f=exp(x.^2)./(x.^3-x+3);
fprime=diff(f)
可以得到这个函数f(x)的微分,很直观
第二道题
我的代码:
syms x y;
g=(x.^2+x*y-1)./(y.^3+x+3);
gprime=diff(g,x)
运行结果:
哇,做到这里,笔者惊叹matlab的功能。这样在学习微积分的过程中可以游刃有余。
下面看symbolic的积分的部分
symbolic integration:符号积分
calculate the integral of a symbolic function:计算下面符号函数的积分
因为是不定积分,解出来的原函数带有任意常数,这里给了一个条件,来确定一个 常数。
积分部分我们使用的函数是Int(),是积分integration的缩写
程序例程:
syms x;
y=x^2*exp(x);
z=int(y);%计算积分
先看一下z长什么样子
z=z-subs(z,x,0)
z=z-subs(z,x,0);代码解释:
subs()函数是subs(z,x,0)在z这个函数中,自变量x带入具体数值0计算出来函数z的值
所以最后的答案是:
练习题:
我的练习
问题:如何使用表示出来积分上下限呢?在int()函数中
查资料:
我的代码:
syms x;
y=(x.^2-x+1)./(x+3);
z=int(y,0,10)
计算出来积分的结果:
现在自己在想,symbolic形式的x计算要不要加点乘,还是只要乘就可以?
笔者实验了一下
符号积分和数值积分的matlab差异
注意和上几次课求积分的差别,上次没有使用symbolic varibles ,数值积分中被积函数使用时需要加上@(x) 句柄,而现在的symbolic 形式不需要这样。直接可以表示被积函数。
回顾一下上次课计算数值积分
【总结一下】
symbolic形式的积分和微分更加直观,直接给出表达式。
符号积分的函数Int()
符号微分的函数diff()
2401_88072880: 有些外国人可能以为他头上那个金箍圈。是一种神圣的颁奖,但是只有中国人知道,那个是禁锢他的
小二郎123789: 把复旦的学费打下来!
小二郎123789: bert是encoder,双向注意力,不是因果注意力,所以貌似不能用这个函数训练。
小二郎123789: 只要字典中包含需要的不去也行了
weixin_62419247: 可复现性和复现本来就不是一个东西吧