MATLAB求解微积分(代码+详细解读)

大多数实际工程问题常常简化为微分方程,其求解显地至关重要。

符号微积分

极限

% matlab提供的求极限函数limit(),其调用格式为
% y = limit(fun,x,x0)
% fun为要求解的函数,x为函数自变量,x0为函数自变量的取值,x趋近于x0
clc;
clear all;
close all;
syms x a   % Create symbolic variables and functions
I1 = limit((sin(x) - sin(3 * x))/sin(x),x,0)
I2 = limit((tan(x) - tan(a))/(x - a),x,a)
I3 = limit((3 * x - 5)/(x^3 * sin(1/x^2)),x,inf)

运行结果如下:

I1 =-2
I2 =tan(a)^2 + 1
I3 =3

导数

diff是求微分常用的函数,其调用格式为diff(f,x,n)f为关于x求n阶导数。

clc;
clear all;
close all;
syms x y
f = sym(exp(-2 * x)*cos(3 * x^(1/2)))
diff(f,x)
g = sym('g(x,y)')           % 建立抽象函数
f = sym('f(x,y,g(x,y))')    % 建立复合抽象函数
diff(f,x)
diff(f,x,2)

积分

% int(f,r,x0,x1)
% f为要积分的表达式,r为积分变量,若是定积分,x0与x1为积分上下限
clc;
clear all;
close all;
syms x y z
I1 = int(sin(x*y + z),z)
I2 = int(1/(3+2*x+x^2),x,0,1)
I3 = int(1/(3+2*x+x^2),x,-inf,inf)

运行结果为:

I1 =-cos(z + x*y)
I2 =(2^(1/2)*atan(2^(1/2)/4))/2
I3 =(pi*2^(1/2))/2

微分方程的数值解

数值解,是指给出一系列对应的自变量,采用数值方法求出的解。
matlab函数调用格式为:

[t,x] = ode23('xprime',t0,tf,x0,tol,trace)
[t,x] = ode45('xprime',t0,tf,x0,tol,trace)[t,x] = ode23('xprime',[t0,tf],x0,tol,trace)
[t,x] = ode45('xprime',[t0,tf],x0,tol,trace)

在这里插入图片描述

function dz = dzdx1(x,z)
dz(1) = z(2);
dz(2) = z(3);
dz(3) = z(3)*x^(-1) - 3 * z(2) * x^(-2) + 2 * z(1) * x^(-3) + 9 * x^(3) * sin(x);
dz = [dz(1);dz(2);dz(3)];
end

主程序如下:

clc;
clear all;
close all;
H = [0.1,60];
z0 = [1;1;1];
[x,z] = ode15s('dzdx1',H,z0);
plot(x,z(:,1),'g--',x,z(:,2),'b*--',x,z(:,3),'mp--');
xlabel('轴\it x');
ylabel('轴\it x');
grid on;
legend('方程解z1的曲线','方程解z2的曲线','方程解z3的曲线')

在这里插入图片描述

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

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

相关文章

STM32----HAL库函数

1.STM32系统框架 1.1 Cortex-M内核&芯片 1.2 F1系统框架 4个主动单元4个被动单元 AHB:高级高性能总线 APH:高级外围总线 其中 1 为 主动单元 , 2为被动单元 总线时钟频率&…

Matlab智能优化算法学习笔记(一)——粒子群算法、模拟退火算法、遗传算法、蚁群算法

文章目录 粒子群算法△ matlab工具箱粒子群函数○ 代码○○ 手搓代码实现粒子群优化 2个变量(xy)的粒子群优化尝试 定义函数 绘制网格图(用来可视化过程) 参数初始化,绘制粒子初始位置 开始迭代过程并绘图 获取结果并绘…

分享一个好看的vs主题

最近发现了一个很好看的vs主题(个人认为挺好看的),想要分享给大家。 主题的名字叫NightOwl,和vscode的主题颜色挺像的。操作方法也十分简单,首先我们先在最上面哪一行找到扩展。 然后点击管理扩展,再搜索栏…

JMM的内存可见性保证

Java程序的 内存可见性保证 可以分为下列3类 1)单线程程序 单线程程序不会出现内存可见性问题。 编译器、runtime、处理器会共同确保单线程程序的执行结果与该程序在顺序一致性模型中的执行结果相同。 2)正确同步的多线程程序 正确同步的多线程程序的…

linux 多路径multipath的安装

1. 什么是多路径 在计算机系统中,多路径是指在存储系统中使用多个物理路径来连接主机和存储设备,以增加系统的可用性和容错性。多路径技术的目标是提供冗余路径,以确保在某个路径发生故障时,数据仍然可以通过其他路径进行传输具体…

从今天起,你就是CAN专家了。

一. CAN协议概念 1.1 CAN 协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下&…

git命令查看提交代码行数和次数

右键点击Git Bash Here 查看代码提交次数 git log --since2022-7-1 --before2022-8-1 --author"XXXX" --pretty%aN |sort |uniq -c | sort -k1 -n -r查看代码提交行数 git log --since2022-8-1 --before2022-9-1 --authorXXXX --prettytformat: --numstat |awk {add…

Ubuntu 常用命令之 sed 命令用法介绍

sed是一个在Linux和其他Unix-like系统中常用的流编辑器,用于对输入流(文件或管道)进行基本的文本转换。它可以非常方便地进行文本替换、插入、删除等操作。 sed命令的基本格式为 sed [options] command file(s)其中,常用的参数有…

文件操作(下)

标题的顺序是接着之前写的,希望这篇博客对你有帮助 七. 随机读写函数 实际上,无论是读还是写,在一次调用顺序读写函数,文件指针会移到已经读过或者写过的下一个位置,从那个位置开始下一次读和写(在文件没有…

Relocations for this machine are not implemented,IDA版本过低导致生成汇编代码失败

目录 1、问题描述 2、安卓app发生崩溃,需要查看汇编代码上下文去辅助分析 3、使用IDA打开.so动态库文件,提示Relocations for this machine are not implemented 4、IDA版本较老,不支持ARM64的指令集,使用7.0版本就可以了 5、…

WEB渗透—PHP反序列化(四)

Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…

每日一题:LeetCode-LCR 016. 无重复字符的最长子串

每日一题系列(day 15) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…