Matlab:数值积分与符号计算

news2025/7/18 9:22:50

Matlab

  • 数值积分
    • 定积分的数值求解实现
      • 自适应积分算法
      • 梯形积分法
      • 累计梯形积分
    • 多重定积分的数值求解实现
  • 符号计算
    • 符号对象及其运算
    • 符号微积分
      • 符号极限
      • 符号导数
      • 求不定积分
    • 符号方程求解

数值积分

数值积分,用于求定积分的近似值。在数值分析中,数值积分是计算定积分数值的方法和理论。在数学分析中,给定函数的定积分的计算不总是可行的。许多定积分不能用已知的积分公式得到精确值。数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。借助于电子计算设备,数值积分可以快速而有效地计算复杂的积分。

定积分的数值求解实现

定积分的数值求解介绍以下三种方法:自适应积分算法、梯形积分法与累计梯形积分。

自适应积分算法

基于全局自适应积分算法的integral函数用于求定积分。
调用格式
q = integral(@fun,xmin,xmax)
q = integral(@fun,xmin,xmax,Name,Value)
其中,fun是被积函数,xmin和xmax分别是定积分的下限和上限。

示例:
人造地球卫星的轨迹可视为平面上的椭圆。我国第一颗人造卫星近地点距离地球表面439km,远地点距离地球表面2384km,地球半径为6371km,求该卫星的轨迹长度。
在这里插入图片描述

%求解:
>> a = 8755; 
>> b = 6810;
>> format long
>> funLength = @(x)sqrt(a^2.*sin(x).^2+ b^2.*cos(x).^2);
>> L = 4*integral(funLength, 0, pi/2)
L =
   4.908996526868900e+04
   

梯形积分法

离散数据用梯形法函数trapz求定积分。
调用格式
(1)T = trapz(Y),其中,用于求均匀间距的积分。通常,Y是向量,采用单位间距(即间距为1),计算Y的近似积分;若Y是矩阵,则输出参数T是一个行向量,T的每个元素分别存储Y的每一列的积分结果。
(2)T=trapz(X, Y),其中,用于求非均匀间距的积分。X、Y满足函数关系Y = f(X), 按X指定的数据点间距,对Y求积分。

示例:
从地面发射一枚火箭,表7.2记录了0~80秒火箭的加速度。试求火箭在第80秒时的速度。
在这里插入图片描述

%求解:
>> t = 0:10:80;
>> a = [30.00,31.63,33.44,35.47,37.75,40.33,43.29,46.69,50.67];
>> v = trapz(t,a)
v =
   3.0893e+03
   

累计梯形积分

函数cumtrapz用于对数据积分逐步累计。
调用格式
(1)Z = cumtrapz(Y),用于求均匀间距的累计积分。
(2)Z = cumtrapz(X,Y),用于求非均匀间距的累计积分。

示例:
从地面发射一枚火箭,表7.2记录了0~80秒火箭的加速度。试求火箭在第80秒时的速度。
在这里插入图片描述

%求解:
>> v = cumtrapz(t,a)
>> v = cumtrapz(t,a)
v =
   1.0e+03 *
  170    0.3081    0.6335    0.9780    1.3442    1.7346    2.1526
  892.6026    3.0894
    

多重定积分的数值求解实现

integral2、quad2d函数用于求二重积分的数值解;integral3函数用于求三重积分的数值解。
调用格式
q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value)
q = quad2d(fun, xmin,xmax,ymin,ymax,)
[q,errbnd] = quad2d(fun, xmin,xmax,ymin,ymax, Name,Value)
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value)
其中,fun为被积函数,[xmin, xmax]为x的积分区域,[ymin, ymax]为y的积分区域,[zmin, zmax]为z的积分区域,选项Name的用法及可取值与函数integral相同。输出参数q返回积分结果,errbnd用于返回计算误差。

示例1:
在这里插入图片描述
示例2:
在这里插入图片描述

%求解1>> fxy = @(x,y) exp(-x.^2/2).*sin(x.^2+y);
>> I = integral2(fxy,-2,2,-1,1)
I =
    1.5745

%求解2>> fxyz = @(x,y,z)4*x.*z.*exp(-z.*z.*y-x.*x);
>> I3 = integral3(fxyz,0,pi,0,pi,0,1)
I3=
    1.7328
    

符号计算

符号计算又称计算机代数,通俗地说就是用计算机推导数学公式,如对表达式进行因式分解、化简、微分、积分、解代数方程、求解常微分方程等。

符号对象及其运算

1.建立符号变量
sym函数一次只能定义一个符号变量, syms函数一次可以定义多个符号变量。
调用格式为:
syms var1 … varN,其中,var1、 … 、varN为变量名,多个符号变量用空格分隔。
2.建立符号表达式
使用已经定义的符号变量组成符号表达式

%示例:
>> syms x y; 
>> f = 8*x^8-8*y+8*x*y
f =
   8*x^8 + 8*x*y - 8*y 
   

符号微积分

微积分(Calculus),数学概念,是高等数学中研究函数的微分(Differentiation)、积分(Integration)以及有关概念和应用的数学分支。它是数学的一个基础学科,内容主要包括极限、微分学、积分学及其应用。其中,微积分的符号是 ∫ 。

符号极限

函数limit用于求符号表达式极限。
调用格式:
limit(f, var, a, direction)
其中,计算当自变量var趋近于常数a时,符号表达式f的极限值;
选项var缺省时,按默认方式确定自变量;
选项a缺省时,求自变量趋近于0时,表达式f的极限值;
选项direction用于指定趋近的方向,'right’表示自变量从右边趋近于a,'left’表示自变量从左边趋近于a。

示例:求下列极限
在这里插入图片描述

%求解极限1:
>> syms x h t
>> limit((sin(x+h)-sin(x))/h, h, 0) 		
ans =
   cos(x)

%求解极限2:
>> limit((1+t/x)^x,inf) 		
ans =
   exp(t)

%求解极限3:
>> limit(x*(sqrt(x^2+1)-x),x,inf,'left') 		
ans =
   1/2

%求解极限4:
>> limit(cot(x)^(1/log(x)),x,0,'right') 		
ans =
   exp(-1)

符号导数

diff函数用于对符号表达式和符号函数求导。
调用格式:
diff(F,var,n),其中,F是符号表达式或符号函数;选项var指定自变量,缺省时,按默认规则确定自变量;选项n指定求n阶导数,默认为1,即求一阶导数。
diff(F,var1,…,varN),对多个自变量的求导的格式。

示例:求下列函数的导数
在这里插入图片描述

%求解1>> syms x;
>> diff(cos(x*x))               
ans =
   -2*x*sin(x^2)
%求解x的二阶导数:
>> diff(cos(x*x),x,2)      
ans =
   - 2*sin(x^2) - 4*x^2*cos(x^2)
%求解x的三阶导数:
>> diff(cos(x*x),x,3)      
ans =
   8*x^3*sin(x^2) - 12*x*cos(x^2)

%求解2>> syms a b t
>> fx = a*(t-sin(t));
>> fy = b*(1-cos(t));
%求对x的一阶导数  
>> diff(fy,t)/diff(fx,t)  	
ans =
   -(b*sin(t))/(a*(cos(t) - 1))


%求解3>> syms x y
>> diff(x^6-3*y^4+2*x^2*y^2,x)   %求对x的偏导数
ans =
   6*x^5 + 4*x*y^2
>> diff(x^6-3*y^4+2*x^2*y^2,y)        %求对y的偏导数
ans =
   4*x^2*y - 12*y^3
>> diff(x^6-3*y^4+2*x^2*y^2,x,y)
ans =
   8*x*y

求不定积分

1.int(expr, v)用于求不定积分,其中,以v为自变量,对符号表达式expr求不定积分。
2.int(expr, v, a, b) 或 int(expr, v, [a, b])用于求定积分,其中,以v为自变量,对符号表达式expr求定积分。a、b分别表示定积分的下限和上限。当表达式s关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果;当a、b中有一个是inf时,函数返回一个广义积分;当a、b中有一个符号表达式时,函数返回一个符号函数。

示例:分别求下列积分
在这里插入图片描述

%求解不定积分1>> syms x a b
>> f = 1/(1+x^2);
>> f1 = int(1/(1+x^2))        			
f1 =
   atan(x)

%求解定积分2>> f2 = int(1/(1+x^2),a,b)   			
f2 =
   atan(b) - atan(a)

符号方程求解

函数solve用于求解用符号表达式表示的代数方程。
调用格式:
Y = solve(s,v, Name,Value) ,其中,求解符号表达式s的代数方程,求解变量为v。v缺省时,按默认规则确定自变量。
Y = solve(s1,s2, …,sn,v1,v2,…,vn)
[y1,y2,…,yn] = solve([s1,s2, …,sn],[v1,v2,…,vn])
其中,求解符号表达式s1,s2,…,sn组成的代数方程组,自变量分别为v1,v2,…,vn。
选项Name和Value成对使用,用于设置求解过程的参数。

示例:求解下列方程
在这里插入图片描述

%求解:

>> syms x
>> y = solve(x-(x^3-4*x-7)^(1/3) == 1,x)		
y =
   3
   

函数dsolve用于求解常微分方程eqn在初值条件cond下的特解。若没有给出初值条件cond,则求方程的通解。eqn可以是符号等式或由符号等式组成的向量。
调用格式:
S = dsolve(eqn,cond)
S = dsolve(e,c,Name,Value),其中,Name和Value成对使用,用于设置求解过程的参数。

示例:求下列微分方程的解
在这里插入图片描述

%求解1>> syms f(x)
>> y3 = dsolve(x*diff(y,x,2)-3*diff(y,x) == x^2, y(1) == 0, y(5) == 0)
y3 =
   (31*x^4)/468 - x^3/3 + 125/468

%求解2>> syms x(t) y(t)
>> [x,y] = dsolve(diff(x,t) == 4*x-2*y, diff(y,t) == 2*x-y)        	
x =
   C11/2 + 2*C10*exp(3*t)
y =
   C11 + C10*exp(3*t)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL Server简介

SQL Server是微软的一款关系型数据库。某些平台吹得天花烂坠,今天第一次在自己的项目中使用了下,感觉不是那么好,特别是SQL语句的支持度还是很欠缺,如limit等都不支持,还有特别单双引号都是需要特别注意的,下面是SQL S…

从0到1CTFer成长之路——1git(全网最详细)

1.1.2.1 git 泄露 (1) 常规git泄露 安装docker sudo apt-get update sudo apt-get install docker 安装容器 docker pull ubuntu:18.04 然后发现请求超时 我们需要阿里云的镜像加速器 我们按照要求配置文件 没有/etc/docker 就自己创建 sudo mkdir -p /etc/docker 然后写入…

Cookie与Session 以及给CBV添加装饰器

文章目录Cookie与Session1、Django操作cookie简单实现用户登录加入装饰器2、Django操作session设置session获取session过期时间清除sessionCBV添加装饰器Cookie与Session HTTP被设计为”⽆态”,也就是俗称“脸盲”。 这⼀次请求和下⼀次请求 之间没有任何状态保持&…

跨模态神经搜索实践VCED 环境准备

跨模态神经搜索实践 环境准备 本文基于WSL2及docker进行环境搭建 1. 安装和配置WSL2 Ubuntu发行版 1.1 安装WSL2 Ubuntu 相关安装命令: wsl --install:默认安装Ubuntu发行版wsl --list --online:查看可支持的发行版本wsl --install -d &…

如何将 wordfile 添加到 UltraEdit 或 UEStudio

UltraEdit 本身支持开箱即用的最常用编程和标记语言的语法突出显示。我们也有数百个其他语言的 wordfile,但是,很容易找到和添加您需要的语言! 重要提示:此电源提示适用于运行 UltraEdit v15.00或 UEStudio v09.10及更高版本的用户…

Ubuntu18.04系统安装nginx

Ubuntu18.04系统安装nginx一、在线安装 Nginx二、离线安装 Nginx参考链接请确保以具有 sudo 权限的用户身份登录,并且您没有在端口 80 或 443 上运行 Apache 或任何其他 Web 服务器。 一、在线安装 Nginx 简介:Nginx (engine x) 是一个免费的&#xff0…

swift-类属性

了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻 FieldDescriptor TargetClassDescriptor {var Flags: ContextDescriptorFlags // uint32var Parent: TargetRelativeContextPointer // Int32var Name: TargetRelativeDirectPointer // I…

Markdown还能这么玩?这款开源神器绝了!

Markdown是一款轻量级标记语言,由于它易读易写的特性,很多程序员用它来写项目文档。其实Markdown的功能不止于此,结合一些工具使用还可以用来做PPT,今天带大家使用Markdown来做一个PPT,看看到底有多炫酷! S…

《springboot那些事》

注&#xff1a;static目录、主要用于存放非模板引擎渲染的资源。 ​ template目录&#xff0c;存放渲染引擎页面的资源。 一句话&#xff1a;用模板引擎的话&#xff0c;就放template目录、否则static目录。 一、使用thymeleaf 引入thymealeaf坐标 <dependency><…

22.11.15打卡 mysql学习笔记

学了DDL和DQL, 今天课太多, 没怎么学啊, 很烦躁, 还有3周要考试了 空格可以有一个或者多个 if not exists表示不存在则执行, 存在则不执行 方括号当中的都可 create database itcase; show databases;查看数据库 再次创建itcase数据库 加上if not exists就不会报错 字符集演示 …

DPDK LPM库(学习笔记)

1 LPM库 DPDK LPM库组件为32位的key实现了最长前缀匹配&#xff08;LPM&#xff09;表查找方法&#xff0c;该方法通常用于在IP转发应用程序中找到最佳路由匹配。 2 LPM API概述 LPM组件实例的主要配置参数是要支持的最大规则数。 LPM前缀由一对参数&#xff08;32位Key&…

React源码分析3-render阶段(穿插scheduler和reconciler)

本章将讲解 react 的核心阶段之一 —— render阶段&#xff0c;我们将探究以下部分内容的源码&#xff1a; 更新任务的触发更新任务的创建reconciler 过程同步和异步遍历及执行任务scheduler 是如何实现帧空闲时间调度任务以及中断任务的 触发更新 触发更新的方式主要有以下几…

Leetcode第21题:合并两个有序链表

生命无罪&#xff0c;健康万岁&#xff0c;我是laity。 我曾七次鄙视自己的灵魂&#xff1a; 第一次&#xff0c;当它本可进取时&#xff0c;却故作谦卑&#xff1b; 第二次&#xff0c;当它在空虚时&#xff0c;用爱欲来填充&#xff1b; 第三次&#xff0c;在困难和容易之…

面试官:你说说 Mysql 索引失效有哪些场景?

前言 SQL 写不好 加班少不了 日常工作中SQL 是必不可少的一项技术 但是很多人不会过多的去关注SQL问题。 一是数据量小&#xff0c;二是没有意识到索引的重要性。本文主要是整理 SQL失效场景&#xff0c;如果里面的细节你都知道&#xff0c;那你一定是学习能力比较好的人&am…

基于Docker的网络安全靶场搭建

背景介绍 在学习网络安全技术过程中,我们往往需要有一个自己的操作机与多个用来搭建环境的靶机,使用VM虚拟机模拟资源占用较大,成本高、局限性大且使用十分不便。 这时我们可以使用一台安装好Docker环境的linux虚拟机来完成桌面版操作机与WEB靶机的搭建与实验操作。 Docker…

Linux操作系统~进程替换,exec系列函数的使用

目录 1.概念/原理 &#xff08;1&#xff09;.替换原理 &#xff08;2&#xff09;.子进程调用execl执行程序替换&#xff0c;为什么父进程不受影响&#xff1f; &#xff08;3&#xff09;.exec*返回值 2.替换函数exec execl execv execlp execvp的&#xff08;execv…

Android Studio App开发之网络通信中使用POST方式调用HTTP接口实现应用更新功能(附源码 超详细必看)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、POST方式调用HTTP接口 POST方式把接口地址与请求报文分开&#xff0c;允许使用自定义的报文格式&#xff0c;由此扩大了该方式的应用场景。POST请求与GET请求主要有三处编码差异 1&#xff1a;在调用setRequestMethod方…

Kafka 消息队列 ( 一 ) 基本概念

0.MQ(message queue) 消息中间件 生活中的问题 : 快递员 给 你 送东西, 你必须 在家等着, (效率低) 可以 把东西 放 指定 的 地方(菜鸟驿站) , 你自己去取 , 指定 的地点(菜鸟驿站) 就是 MQ 消息队列中间件 0.1.开发中的问题 0.1.1.异步问题 0.1.2.业务解耦 0.1.3.流量削…

2. 信息在计算机中存储的格式

目录 一、信息存储&#xff1a; 1. 空间大小定义 2. 不同进制的转换方法 3. 各种数据类型所占字节数 4. 字节顺序 5. 字符串存储 6. 代码的二进制表示 7. 布尔代数运算 8. 逻辑运算 9. 移位运算 二、 整数表示 1. 有符号与无符号表示 1.1 表示范围 1.2 补码编码的…

C语言日记 35 拷贝构造函数

书P132&#xff1a; 拷贝构造函数的作用是 用已存在的对象初始化另一对象&#xff0c;两对象类类型应一样 在这里我们可以看到&#xff0c; 他对被拷贝的对象的要求只有“已存在的对象&#xff0c;两对象类类型一样”&#xff0c;也就是说他这里也没有说我们不能跨区域&…