台湾国立大学郭彦甫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

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实