Matlab与微积分计算
一.极限问题的解析解
1.1 单变量函数的极限
格式1: L= limit( fun, x, x0)
格式2: L= limit( fun, x, x0, ‘left’ 或 ‘right’)
>> syms x a b;
>> f=x*(1+a/x)^x*sin(b/x);
>> L=limit(f,x,inf)
L =
b*exp(a)
可以结合函数图像来观察。
1.2 多变量
格式: L1=limit(limit(f,x,x0),y,y0)
或 L1=limit(limit(f,y,y0), x,x0)
如果x0 或y0不是确定的值,而是另一个变量的函数,如x->g(y),则上述的极限求取顺序不能交换。
相当于换元法,那肯定是先还原。
>> syms x y a;
>> f=exp(-1/(y^2+x^2)) … *sin(x)^2/x^2*(1+1/y^2)^(x+a^2*y^2);
>> L=limit(limit(f,x,1/sqrt(y)),y,inf)
L =
exp(a^2)
二.函数导数的解析解
2.1 导数
格式: y=diff(fun,x) %求导数
y= diff(fun,x,n) %求n阶导数
例:
>> syms x; f=sin(x)/(x^2+4*x+3);
>> f1=diff(f); pretty(f1) pretty函数可以使多项式看起来更清晰。 cos(x) sin(x) (2 x + 4)
--------------- - -------------------
2 2 2
x + 4 x + 3 (x + 4 x + 3) 否则是 cos(x)/(x^2 + 4*x + 3) - (sin(x)*(2*x + 4))/(x^2 + 4*x + 3)^2 原函数及一阶导数图:
>> x1=0:.01:5;
>> y=subs(f, x, x1);
>> y1=subs(f1, x, x1);
>> plot(x1,y,x1,y1,‘:’) 更高阶导数:
>> tic, diff(f,x,100); toc
elapsed_time =
4.6860
2.2 多元函数偏导
和求多远极限的方法类似。
格式: f=diff(diff(f,x,m),y,n)
或 f=diff(diff(f,y,n),x,m)
例:求其偏导数并用图表示。
>> syms x y; z=(x^2-2*x)*exp(-x^2-y^2-x*y);
>> zx=simple(diff(z,x))
zx =
-exp(-x^2-y^2-x*y)*(-2*x+2+2*x^3+x^2*y-4*x^2-2*x*y) >> zy=diff(z,y)
zy =
(x^2-2*x)*(-2*y-x)*exp(-x^2-y^2-x*y)
直接绘制三维曲面
>> [x,y]=meshgrid(-3:.2:3,-2:.2:2);
>> z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);
>> surf(x,y,z), axis([-3 3 -2 2 -0.7 1.5]) %直接surf(x,y,z)就行 axis([-3 3 -2 2 -0.7 1.5])产生三维坐标系。
matlab中三维网格图(mesh)和三维曲面图(surf)区别?
感觉没啥区别,颜色不同。
http://www.cnblogs.com/hxsyl/archive/2012/10/10/2718380.html#3218180
三.积分问题解析解
格式: F=int(fun,x)
定积分 格式: I=int(f,x,a,b)
无穷积分 格式: I=int(f,x,a,inf)
多重积分:顺序的改变使化简结果不同于原函数,但其误差为0,表明二者实际完全一致。这是由于积分顺序不同,得不出实际的最简形式。
用simple(f-f1),看结果是不是0
四.级数展开
taylor(f,x,k,a)
在x = a出展开的前k项。没a的话默认在0出。
例:对y=sinx进行Taylor幂级数展开,并观察不同阶次的近似效果。
>> x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
>> plot(x0,y0,'r-.'), axis([-2*pi,2*pi,-1.5,1.5]); hold on
>> for n=[8:2:16] p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1) end % p=taylor(y,n) (2009b
line([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标]),
例line([1,2],[3,4])将画出(1,3)到(2,4)的一条直线,而不是(1,2)到(3,4)。
当line(a,b)中,a b是相同大小的矩阵时,将会在对应的每一列做一条直线。
当line(a,b,c)时,相应地会在三维图中画一条线。
a b c 均为2XN矩阵。
注意:实际上就是连接了几个点,说成折现比较好。
其他的用到再说吧。
五.级数求和



>> x = [1 2 3] x = 1 2 3 >> y = [4 5 6 ] y = 4 5 6 >> x*y
错误使用 *
内部矩阵维度必须一致。 >> x.*y ans = 4 10 18
别被.*理解错了,我理解的是对于两个行向量a和b,a*b会是向量乘法,就是的到了一个数,a.*b也会是向量乘法,其实这是因为对matlab不熟悉所致,想想对min/max函数的误解。其实*就是矩阵乘法,提示维度不同,.*就是对应位置相乘,且并没有自动连加操作。

>> syms m,n
未定义函数或变量 'n'。 >> syms m n
>> f = symsum(1/m,m,1,n)-log(n) f = eulergamma + psi(n + 1) - log(n) >> limit(f,n,1,inf)
错误使用 mupadmex
Unexpected second parameter to mupadmex. 出错 sym/limit (line 50)
rSym = mupadmex('symobj::map', args{1}.s, 'symobj::limit', args{2}.s, args{3}.s, dir); >> limit(f,n,inf) ans = eulergamma
六.数值微分
d(x+1)-d(x)/Δx或者d(x)-d(x-1)/Δx或者d(x+1)-d(x-1)/2*Δx。
Matlab与微积分计算的更多相关文章
- MATLAB 赋值命令计算结果在命令窗口显示结果
MATLAB 赋值命令计算结果在命令窗口显示结果 MATLAB如何控制计算结果是否显示在命令窗口 在运算结方程或者设定参数后面加分号也就是 ; 命令窗口就不会显示这些参数或结果了.举个例子clccle ...
- Matlab与科学计算的基本运算
各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() 例:>> A=[1,2,3;4,5,6;7,8,0]A = ...
- matlab 相关系数的计算
1. 首先说说自相关和互相关的概念. 这 个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号 x(t),y ...
- matlab中,计算,记录,程序运行,起始,结束 时间,间隔 &matlab中 tic,toc函数的用法
Tic和toc函数可以计算运行一段时间的代码. 例如: clc tic d=zeros(1,10000); for i=1:10000 d(i)=i; end toc tic c=1; for i=1 ...
- Matlab melband的计算
%% mel bankmelnum = 24;low = 0;high = 0.5;melbank=melbankm(melnum,fftsize,Fs,low,high,'m');%归一化mel滤波 ...
- Matlab 计算大数的阶乘
http://hi.baidu.com/dreamflyman/item/11e920165596280fd0d66d9f >> syms k;>> kfac=sym('k!' ...
- (Matlab)GPU计算简介,及其与CPU计算性能的比较
1.GPU与CPU结构上的对比 2.GPU能加速我的应用程序吗? 3.GPU与CPU在计算效率上的对比 4.利用Matlab进行GPU计算的一般流程 5.GPU计算的硬件.软件配置 5.1 硬件及驱动 ...
- MATLAB线性回归方程与非线性回归方程的相关计算
每次比赛都需要查一下,这次直接总结到自己的博客中. 以这个为例子: 2.线性方程的相关计算 x=[1,2,3,4,5]';%参数矩阵 X=[ones(5,1),x];%产生一个5行一列的矩阵,后接x矩 ...
- 科学计算 | Matlab 使用 GPU 并行计算
科学计算 | Matlab 使用 GPU 并行计算 本文转载自: https://sanwen8.cn/p/14bJc10.html Matlab下直接使用GPU并行计算(预告)< ...
随机推荐
- Git 一些错误的解决方法
Git初学者的个人经验记录,仅供参考 1. Pull is not possible because you have unmerged files. 症状:pull的时候 $ git pull Pu ...
- cocos2dx2.2.2弹出框的实现
在上一篇文章中,我们利用CCEditBox实现了输入框功能,使我们在注册时可以输入用户名和密码.但是当用户名和密码的输入不符合规范时,我们应该怎样给与用户提示呢?下面我们就来介绍弹出框的实现方式. 我 ...
- C# 中 datagridview 绑定BindingList类型和更新
C# 中的datagridview是一个非常有用且强大的控件,可以用来绑定数据库.绑定LIST类型的变量等等. 这里我们说一说绑定List类型并实时更新datagridview的情况.实时更新,指的是 ...
- OC4_遵守多个协议
// // Calulator.h // OC4_遵守多个协议 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zha ...
- VS默认环境设置
VS2010的工具菜单-->导入导出设置-->重置所有设置
- Linux下mysql的安装和使用(C语言)
1 mysql的安装 我使用的ubuntu在线安装,非常简单,命令为: sudo apt-get install mysql-client mysql-server 2 mysql命令集合 网络太多了 ...
- 基础学习总结(四)---内存获取、XML之PULL解析
外部项目引入如果没找到工程文件要先创建一个android项目在引入. 根据要查看的项目名在项目中搜索逐步查看 ==================== 内存详情获取: public class Mai ...
- 【转】CSS实现兼容性的渐变背景(gradient)效果
一.有点俗态的开场白 要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现 ...
- WinDbg 调试.net程序
WinDbg支持以下三种类型的命令: · 常规命令,用来调试进程 · 点命令,用来控制调试器 · 扩展命令,可以添加叫WinDbg的自定义命令,一般由扩展dl ...
- jquery 在页面中三种写法
jQuery 分 2 个系列版本 1.x 与 2.x,主要的区别在于 2.x 不再兼容 IE6.7.8浏览器,这样做的目的是为了兼容移动端开发.由于减少了一些代码,使得该版本比 jQuery 1.x ...