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

本文主要是介绍台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

台湾国立大学郭彦甫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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466071

相关文章

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

JavaScript装饰器从基础到实战教程

《JavaScript装饰器从基础到实战教程》装饰器是js中一种声明式语法特性,用于在不修改原始代码的情况下,动态扩展类、方法、属性或参数的行为,本文将从基础概念入手,逐步讲解装饰器的类型、用法、进阶... 目录一、装饰器基础概念1.1 什么是装饰器?1.2 装饰器的语法1.3 装饰器的执行时机二、装饰器的

MySQL 5.7彻底卸载与重新安装保姆级教程(附常见问题解决)

《MySQL5.7彻底卸载与重新安装保姆级教程(附常见问题解决)》:本文主要介绍MySQL5.7彻底卸载与重新安装保姆级教程的相关资料,步骤包括停止服务、卸载程序、删除文件和注册表项、清理环境... 目录一、彻底卸载旧版本mysql(核心步骤)二、MySQL 5.7重新安装与配置三、常见问题解决总结废话不多

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.