004 MATLAB数值微积分

 01  函数的极值点

求解一元函数在区间(x1,x2)中极小值点:
x=fminbnd(fun,x1,x2)
 求解初始向量为x0的多元函数极小值点x和对应的极值y
[x,y]=fminsearch(fun,x0)

 02 微积分

1.数值微分:

 一次微分:
 diff(x)

若x是一个向量,则返回[x(2)-x(1) x(3)-x(2)…x(n)-x(n-1)];
若x是一个矩阵,则返回一个矩阵[x(2:m,:)-x(1:m-1,:)](下一行减上一行作为当前行,返回(m-1)*n的矩阵)

n次微分: 
diff(x,n)
 在指定维dim方向进行n次微分:
diff(x,n,dim)

2.函数微分: 

对于函数y=f(x),则为dy/dx=diff(y)/diff(x)

 2.常微分方程

采用龙格-库塔法求解初值常微分方程的函数有:

ode23、ode45、ode113、ode15s、ode23s、ode23t、ode23tb

下面我们用solver来表示所选用的函数

[x,y]=solver(fun,tspan,y0)

其中fun表示函数文件名,tspan表示积分区间,y0表示初始条件,返回的x是自变量数据,y是解形成的矩阵

[x,y]=solver(fun,tspan,y0,options,p1,p2,…)

其中options用于设置算法参数,可通过odeset指令来进行设置算法的绝对误差、相对误差和最大积分步长等,若不进行设置,则用“[]”代替,p1,p2,…是传递给函数文件的参数

%建立函数文件fun4.m。
function dy=fun4(x,y)
dy=2*x*y-(sin(x))*y;
dy=dy(:);建立空矩阵
%再调用函数ode23求解微分方程。
>>[x,y]=ode23(@fun4,[0:0.1:2],1);
>> plot(x,y)
首先建立函数文件fun5.m。
function dy=fun5(x,y)
dy(1)=2*y(2)-(sin(x))*y(1);
dy(2)=cos(x)*exp(-x)-exp(-x)*y(2);
再调用函数ode45求解微分方程。
>>options=odeset('RelTol',1e-4,'AbsTol',[1e-5 1e-4]);   %设置相对误差和绝对误差
>>[x,y]=ode45(@fun5,[0 1],[0 1],options);
>>plot(x,y(:,1),'-',x,y(:,2),'-.')

3.数值积分

(1)矩阵法:

用常数近似子区间内的函数曲线

cumsum(x)

当x为向量时,返回第i个元素为向量x的前i个元素和的向量(累加和);

当x为矩阵时,返回一个大小相同的矩阵,其元素为x每列的累积和(按行依次向前累加得到相应的行)。

cumsum(x,dim)

返回元素为指定维方向x元素累积和的矩阵

dim=1时与cumsum(x)等效

>> dx=0.01;
>> x=[0:0.01:1];                
>> y=exp(-x);                   
>> s=cumsum(y)*dx;     
>> s(end)
ans =0.6390

(2)梯形法:

用直线近似子区间内的函数曲线

 trapz(y):

当y为向量时,返回y的积分;当y为矩阵时,返回各列的数值积分

trapz(x,y):返回y对x的数值积分。
trapz(…,dim):返回指定维方向上的积分

 

>> x=[0:0.01:1];                
>> y=exp(-x);                   
>> s=trapz(x,y)     
s =0.6321  

(3)Simpson法:

用直线的中点和两端点构成的抛物线近似子区间内的函数曲线。

利用函数quad和quadl,调用格式相同:

 q=quad(fun,a,b,tol,trace,p1,p2,…)q=quadl(fun,a,b,tol,trace,p1,p2,…)

其中fun是被积函数;a和b是积分下限和上限;这三个输入参数是必须要有的。tol是算法绝对误差,缺省时取默认值10-6;trace取非零值时,表示随积分进程逐点画出被积函数;p1,p2,…表示向被积函数传送的参数


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/481317.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Milvus×Florence:一文读懂如何构建多任务视觉模型

近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…

开展网络安全成熟度评估:业务分析师的工具和技术

想象一下,您坐在飞机驾驶舱内。起飞前,您需要确保所有系统(从发动机到导航工具)均正常运行。现在,将您的业务视为飞机,将网络安全视为飞行前必须检查的系统。就像飞行员依赖检查表一样,业务分析师使用网络安全成熟度评估来评估组织对网络威胁的准备程度。这些评估可帮助…

MATLAB 中有关figure图表绘制函数设计(论文中常用)

在撰写论文时,使用 MATLAB 导出的图像常常因大小和格式不统一,导致投稿时编辑部频繁退稿,要求修改和调整。这不仅浪费时间,也增加了工作量。为了减少这些麻烦,可以在 MATLAB 中导出图像时提前设置好图表的大小、格式和…

Nuxt.js 应用中的 render:response 事件钩子

title: Nuxt.js 应用中的 render:response 事件钩子 date: 2024/11/29 updated: 2024/11/29 author: cmdragon excerpt: render:response 是一个在 Nuxt.js 中与服务器端渲染(SSR)相关的钩子,它会在请求的响应发送之前被调用。这个钩子的目的是让开发者可以在响应发送之…

AI实践项目——图片视频自动上色系统,让旧照片焕然一新

1.主要内容 (1)项目概述 在图片处理的世界中,AI不仅用于识别和分析,还可以赋予灰度照片色彩,为其注入新的生命。今天,我们将探讨一种通过深度学习模型为灰度图片上色的技术。 ①参考文献 Colorful Image…

Vue教程|搭建vue项目|Vue-CLI新版脚手架

一、安装Node环境 安装Node及Npm环境 Node下载地址:Node.js — Run JavaScript EverywhereNode.js is a JavaScript runtime built on Chromes V8 JavaScript engine.https://nodejs.org/en/ 安装完成后,检查安装是否成功,并检查版本,命令如下: node -v npm -v mac@Macd…

从 App Search 到 Elasticsearch — 挖掘搜索的未来

作者:来自 Elastic Nick Chow App Search 将在 9.0 版本中停用,但 Elasticsearch 拥有你构建强大的 AI 搜索体验所需的一切。以下是你需要了解的内容。 生成式人工智能的最新进展正在改变用户行为,激励开发人员创造更具活力、更直观、更引人入…

ERROR in [eslint] Invalid Options ‘extensions‘ has been removed.

看着这个报错 感觉是版本不对引起的 ERROR in [eslint] Invalid Options: - Unknown options: extensions - extensions has been removed. ERROR in Error: Child compilation failed: [eslint] Invalid Options: - Unknown options: extensions - extensions has b…

架构-微服务-服务调用Dubbo

文章目录 前言一、Dubbo介绍1. 什么是Dubbo 二、实现1. 提供统一业务api2. 提供服务提供者3. 提供服务消费者 前言 服务调用方案--Dubbo‌ 基于 Java 的高性能 RPC分布式服务框架,致力于提供高性能和透明化的 RPC远程服务调用方案,以及SOA服务治理方案。…

使用Grafana K6来测测你的系统负载能力

背景 近期我们有个号称会有很高很高并发的系统要上线,为了测试一下自己开发的系统的负载能力,准备了点海克斯科技,来看看抗不抗的住。 之前笔者写过用Apache JMeter进行压力测试的文章(传送门👉:https://…

气膜建筑:打造全天候安全作业空间,提升工程建设效率—轻空间

在现代建筑工程中,施工环境的管理和作业效率是决定项目进度和质量的关键因素。然而,施工过程中常常会受到天气变化的影响,诸如大风、雨雪、沙尘等恶劣天气常常延误工期,增加施工难度。为了解决这一问题,气膜建筑以其独…

CTF-Hub SQL 报错注入(纯手动注入)

​ 当输入1时,发现只有查询正确,基本上可以判断出没有回显 开始注入(工具hackerBar) 题目是报错注入,方向就比较明显,大致说一下用到的函数和原理。 常见报错注入函数: 通过 floor() 报错注入通过 extractValue() …

HCIE:详解OSPF,从基础到高级特性再到深入研究

目录 前言 一、OSPF协议基本原理 简介 基本原理 OSPF路由器类型 OSPF网络类型 OSPF报文类型和封装 OSPF邻居的建立的维护 DR和BDR的选举 伪节点 LSDB的更新 OSPF的配置 二、OSPF的高级特性 虚连接(Virtual-Link) OSPF的LSA和路由选择 OSPF…

C++游戏开发入门:如何从零开始实现自己的游戏项目?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C游戏开发的相关内容! 关于【…

直接抄作业!Air780E模组LuatOS开发:位运算(bit)示例

在嵌入式开发中,位运算是一种高效且常用的操作技巧。本文将介绍如何使用Air780E模组和LuatOS进行位运算,并通过示例代码帮助读者快速上手。 一、位运算概述 位运算是一种在计算机系统中对二进制数位进行操作的运算。由于计算机内部数据的存储和处理都是…

linux centos nginx编译安装

编译安装nginx(Centos) 编译需要的基础环境yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c1.下载nginx源码包 Nginx源码包下载地址:nginx源码包下载 2. 上传nginx源码包到服务器 我上传的地址是/home/chenhao/nginx…

公链开发中的技术实现路径:构建高效、安全的去中心化网络

区块链技术作为数字经济的重要组成部分,公链(Public Chain)是其核心架构之一。公链作为去中心化的数字账本,不仅承载着去中心化应用(DApp)的运行,还确保了交易的透明、安全性。随着区块链技术的…

TortoiseGit 将本地已有仓库推送到远程

TortoiseGit 将本地已有仓库推送到远程 一、创建线上仓库二、创建本地仓库三、提交内容到本地仓库四、添加远程仓库地址补充 一、创建线上仓库 在gitlab管理面页面按这前讲过的步骤创建一个空仓库。(通常我们把服务器上这个仓库叫远程仓库,把我们自己电…

3.22【机器学习】决策树作业代码实现

4.1由于决策树只在样本同属于一类或者所有特征值都用完或缺失时生成叶节点,同一节点的样本,在路径上的特征值都相同,而训练集中又没有冲突数据,所以必定存在训练误差为0的决策树 4.2使用最小训练误差会导致过拟合,使得…

C语言:C语言实现对MySQL数据库表增删改查功能

基础DOME可以用于学习借鉴&#xff1b; 具体代码 #include <stdio.h> #include <mysql.h> // mysql 文件&#xff0c;如果配置ok就可以直接包含这个文件//宏定义 连接MySQL必要参数 #define SERVER "localhost" //或 127.0.0.1 #define USER "roo…