当前位置:   article > 正文

MATLAB学习笔记——数值微积分

MATLAB学习笔记——数值微积分

前言

本次主要是为了记录下学习和复习MATLAB中的知识点,顺便复习一波高数,以此来巩固一下自己薄弱的知识体系,MATLAB前面基础零散的小知识点就暂时先不管,事先声明,本人是跟着的B站上的教程视频 MATLAB教程_台大郭彦甫(14课)原视频补档,所以博客中的大部分案例也都来自郭老师得教案。

基础必知

公式
在这里插入图片描述
在MATLAB中用p = [1 0 -2 -5];表示,所在位置为变量指数。
多项式微分公式
在这里插入图片描述
多项式积分公式
在这里插入图片描述

多项式计算

在这里插入图片描述

a = [9,-5,3,7];  x = -2:0.01:5;
f = polyval(a,x);  
plot(x,f,'LineWidth', 2);
xlabel('x');  ylabel('f(x)');
set(gca, 'FontSize', 14)
  • 1
  • 2
  • 3
  • 4
  • 5

polyval - 多项式计算
此 MATLAB 函数 计算多项式 p 在 x 的每个点处的值。参数 p 是长度为 n+1 的向量,其元素是 n 次多项式的系数(降幂排序)。
在这里插入图片描述

多项式微分

在这里插入图片描述

p=[5 0 -2 0 1];
polyder(p)
  • 1
  • 2

polyder - 多项式微分
此 MATLAB 函数 返回 p 中的系数表示的多项式的导数。
在这里插入图片描述
计算微分后某个点的值。

polyval(polyder(p),7)
  • 1

在这里插入图片描述

多项式积分

在这里插入图片描述

p=[5 0 -2 0 1];
polyint(p, 3)
  • 1
  • 2

polyint - 多项式积分
此 MATLAB 函数 使用积分常量 k 返回 p 中系数所表示的多项式积分。
在这里插入图片描述
计算积分后某个点的值。

polyval(polyint(p, 3),7)
  • 1

在这里插入图片描述

函数求导

x = [1  2  5  2  1];
diff(x)
  • 1
  • 2

diff - 差分和近似导数
此 MATLAB 函数 计算沿大小不等于 1 的第一个数组维度的 X 相邻元素之间的差分。
在这里插入图片描述
可以看出得到的结果为每个数之间的间隔。
求两点之间的斜率
在这里插入图片描述

x = [1  2];  y = [5  7];
slope = diff(y)./diff(x) 
  • 1
  • 2

在这里插入图片描述
特定区间内求导
在这里插入图片描述

h = 0.5;  x = 0:h:2*pi;
y = sin(x);  m = diff(y)./diff(x);
  • 1
  • 2

二次求导与三次求导

在这里插入图片描述

x = -2:0.005:2;  y = x.^3;
m = diff(y)./diff(x);
m2 = diff(m)./diff(x(1:end-1));

plot(x,y,x(1:end-1),m,x(1:end-2),m2);
xlabel('x', 'FontSize', 18);  
ylabel('y', 'FontSize', 18);
legend('f(x) = x^3','f''(x)','f''''(x)');
set(gca, 'FontSize', 18);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

end - 1是因为每次求导后区间都会缩小1。
在这里插入图片描述

中点法则(Midpoint Rule)

在这里插入图片描述
使用Midpoint Rule来求积分的区间面积。
在这里插入图片描述

h = 0.05;  x = 0:h:2;
midpoint = (x(1:end-1)+x(2:end))./2;
y = 4*midpoint.^3;
s = sum(h*y)
  • 1
  • 2
  • 3
  • 4

midpoint - Midpoint weight initialization function
This MATLAB function takes two arguments, Number of rows (neurons) R-by-Q matrix of input value ranges = [Pmin Pmax]
在这里插入图片描述

梯形法则(Trapezoid Rule)

在这里插入图片描述
使用Trapezoid Rule来求积分区间面积。
在这里插入图片描述

h = 0.05; x = 0:h:2; y = 4*x.^3;
s = h*trapz(y)
  • 1
  • 2

trapz - 梯形数值积分
此 MATLAB 函数 通过梯形法计算 Y 的近似积分(采用单位间距)。Y 的大小确定求积分所沿用的维度:
在这里插入图片描述

二阶规则(Second-order Rule)

在这里插入图片描述
使用Second-order Rule计算积分区间面积。
在这里插入图片描述

h = 0.05;  x = 0:h:2;  y = 4*x.^3;
s = h/3*(y(1)+2*sum(y(3:2:end-2))+...
4*sum(y(2:2:end))+y(end))
  • 1
  • 2
  • 3

在这里插入图片描述

三者比较

在这里插入图片描述

回到最简单的方法(Function Handles (@) )

求积分
在这里插入图片描述

y = @(x) 1./(x.^3-2*x-5);
integral(y,0,2)
  • 1
  • 2

在这里插入图片描述

多重积分

二重积分
在这里插入图片描述

f = @(x,y) y.*sin(x)+x.*cos(y);
integral2(f,pi,2*pi,0,pi)
  • 1
  • 2

在这里插入图片描述
三重积分
在这里插入图片描述

f = @(x,y,z) y.*sin(x)+z.*cos(y);
integral3(f,0,pi,0,1,-1,1)
  • 1
  • 2

在这里插入图片描述

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

闽ICP备14008679号