台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numeric differentiation

复习:diff()函数用来计算vector前后 entry的差异

数值微分继续

various step size 不同Δx大小

不同Δx大小,看近似值和真正函数值之间的差异大不大。

看题目,用不同的h值计算函数f(x)=sin(x)的导数,画出图形

The derivatives(导数) of f(x)=sin(x) calculated using various h values

codes:

g=colormap(lines);hold on;
for i=1:4%为了给出不同的h值x=0:power(10,-i):pi;%power(10,-i)表示10的-i次方
y=sin(x);
m=diff(y)./diff(x);%算是计算导数
plot(x(1:end-1),m,'color',g(i,:));%x(1:end-1)因为diff差值,vector维度少一
end
hold off;set(gca,'xlim',[0,pi/2]);%设置x轴横坐标范围
set(gca,'ylim',[0,1.2]);
set(gca,'xtick',0:pi/4:pi/2);%设置x轴坐标间隔
xticklabels({'0','\pi/4','\pi/2'});%显示pi
set(gca,'fontsize',18);%设置字体
h=legend('h=0.1','h=0.01','h=0.001','h=0.0001');%设置图像名称
set(h,'fontname','Times New Roman');
box on;%右上边框显示

代码的解释
colormap回顾:colormap输入参数的用法

plot(x(1:end-1),m,‘color’,g(i,:));的解释:
%x(1:end-1)因为diff差值,vector维度少一,所以需要end-1。这里color用的是g(i,:),由于g是colormap中的lines颜色图,颜色图是一个矩阵matrix,这里应该是二维的,g(i,:)取的是这个矩阵的第i行元素,我的理解是一个行向量,然后赋值给了color显示出来。

运行结果:


作业题:
给定一个函数,用不同的h值计算近似导数


我的代码:

g=colormap(lines);%颜色
hold on;
%先来确定x的范围:
for i=1:3x=0:power(10,-i):2*pi;%不同的h 步长y=exp(-x).*sin(x.^2/2);%函数表达式需要点乘m=diff(y)./diff(x);%差分,求导plot(x(1:end-1),m,'color',g(i,:));
end
hold off;%下面是一些设置
box on;
set(gca,'fontsize',18);
set(gca,'xlim',[0,2*pi]);%x轴范围
set(gca,'ylim',[-0.3,0.3]);%y轴范围
set(gca,'xtick',0:pi/2:2*pi);%刻度
xticklabels({'0','\pi/2','\pi','3\pi/2','2\pi'});%显示刻度
legend('h=0.1','h=0.01','h=0.001');%函数标头

有个问题:这个函数表达式是两个函数相乘的形式,中间是用*还是用.*点乘?
实验结果:
y=exp(-x).*sin(x^2/2);(错误)

计算这个表达式正确的形式

y=exp(-x).*sin(x.^2/2);

我的练习结果:


下一个题目是

二次和三次微分second and third derivatives

the second derivative f’’ and third derivative f’’’ can be obtained using similar approaches

举例子:

例程代码:

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)',4);%函数标头
set(gca,'fontsize',18);

【注意】每做一次微分,entry就少一个。

运行结果:

总结一下:
数值微分主要使用diff()函数。需要注意的是做一次微分,entry减少一,就是vector维度少一个。
一次微分:m=diff(y)./diff(x);%一次微分
二次微分:m2=diff(m)./diff(x(1:end-1));%二次微分

台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation相关推荐

  1. 台湾国立大学郭彦甫Matlab教程笔记(14)polynomial differentiation多项式微分

    台湾国立大学郭彦甫Matlab教程笔记(14) today: polynomial differentiation and integration多项式微分与积分 numerical differen ...

  2. 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration

    台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration 数值积分 calculating the numerical value of a definite inte ...

  3. 台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下

    台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下 上文记录的是关于统计的图标的绘制 下面我们来到另一个模块:颜色 fill()填充函数 功能:某一个封闭曲线,图上特 ...

  4. 台湾大学郭彦甫matlab百度云,台湾国立大学郭彦甫Matlab教程笔记(23) linear systems...

    台湾国立大学郭彦甫Matlab教程笔记(23) linear systems linear system线性系统 线性系统和线性方程组实际上是解决的两类不同的问题. 下面一个系统.这个系统 是一个矩阵 ...

  5. 台湾大学郭彦甫matlab讲义,台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration...

    台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration 数值积分 calculating the numerical value of a definite inte ...

  6. 台湾国立大学郭彦甫Matlab教程笔记(23) linear systems

    台湾国立大学郭彦甫Matlab教程笔记(23) linear systems linear system线性系统 线性系统和线性方程组实际上是解决的两类不同的问题. 下面一个系统.这个系统 是一个矩阵 ...

  7. 台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)

    台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix) matrix left division左除:\ or mldivide() solvi ...

  8. 台湾国立大学郭彦甫Matlab教程笔记(21)linear equations(高斯消去法和追赶法)

    台湾国立大学郭彦甫Matlab教程笔记(21) today: linear equation 线性方程 linear system 线性系统 我们先看第一部分 linear equation 假定一个 ...

  9. 台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric)

    台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric) symbolic vs. numeric符号法和数值法的区别对比 symbolic 1)advantages ...

最新文章

  1. 关注基于云的下一代应用开发
  2. Kaldi不支持Cuda10_1版本
  3. 用python绘制漂亮的图形-python如何画出漂亮的地图?
  4. IIS发生意外错误0x8ffe2740
  5. mysql中怎么删除表中的一列数据_mysql如何删除表中一行数据?
  6. Private Inheritance(what, where)
  7. java 获取mysql路径_如何使用JPQL收集MySQL基本路径?
  8. [Java] 蓝桥杯PREV-3 历届试题 带分数
  9. SQL 数据库基本操作
  10. ServerGuide U盘安装Windows Server 2008 R2安装
  11. zip 和rar 的区别
  12. 将cpp文件封装成 so 文件并调用
  13. 谷歌董事长施密特:乔布斯是25年来最成功CEO
  14. 《大道至简-软件工程实践者的思想》读书笔记
  15. mysql 分组查询最新
  16. outlook从服务器中恢复已删除项目,恢复邮箱中的已删除邮件:Exchange 2013 帮助 | Microsoft Docs...
  17. CAD设置靶心的大小
  18. 用三个词来描述你对人生的理解
  19. 数据结构完整性是指数据的正确性、有效性、相容性!
  20. 数据结构实战-死磕王争

热门文章

  1. Window 10 :如何彻底关闭:Windows Defender Service(2015-12-20日更新)
  2. zoj 1962 How Many Fibs?(字符串化为数字处理)
  3. 第二十三模板 18标准模板库
  4. 两个场景怎样合在一起_Spring AOP应用场景你还不知道?这篇一定要看
  5. linux暂停线程和恢复,是否有可能在Linux [暂停]中检测到线程已进行上下文切换?...
  6. 【Paper】2017_Limit-Cycle-Based Decoupled Design of Circle Formation Control with Collision Avoidance
  7. 虚指针的用法(原出处//http://blog.csdn.net/haoel/article/details/1948051)
  8. TCL with SNPS - get_object_namesizeof_collectionstring
  9. Altium.Designer的学习视频 分享~~
  10. IDEA热布署报错java.lang.IllegalStateException: Restarter has not been initialized