matlab进行数值近似积分,含变化的常数做为参数

原文地址:关于matlab中求定积分int和quad命令的使用作者:笨笨猫

关于matlab中求定积分int和quad命令的使用

int的积分可以是定积分,也可以是不定积分(即有没有积分上下限都可以积),可以得到解析的解,比如你对x^2积分,得到的结果是1/3*x^3,这是通过解析的方法来解的。如果int(x^2,x,1,2)得到的结果是7/3 ;

quad是数值积分,它只能是定积分(就是有积分上下限的积分),它是通过simpson数值积分来求得的(并不是通过解析的方法得到解析解,再将上下限代入,而是用小梯形的面积求和得到的)。如果f=inline(‘x.^2‘);quad(f,1,2)得到的结果是2.333333,这个数并不是7/3 ;

最新心得:
看一本书上介绍quad积分时,是创建了一个子函数形式,如
function f=quadl(x)
f=x.^2;
Q=quad(‘quadl‘,0,2)

结果Q =
    2.6667

如果函数中有一个已知变量如a的话,如
function f=quadl(x)
a=2;
f=a+x.^2;


Q=quad(‘quadl‘,0,2)
结果Q =
    6.6667

当用使用inline函数的时候可以避免调用子函数的麻烦,直接把这个功能集成于总程序,如
f=inline(‘x.^2‘);quad(f,1,2)
但是当函数为
a=2;
f=inline(‘a+x.^2‘);
quad(f,1,2)

计算就会出错,说明inline中不能带已知的字母。

但是很多时候,变量a是循环变化的,这样就导致这种调用子函数的方法非常不好用,
a不能及时改变,下面的方法可以解决这个问题:

a=2;
[email protected](x)(a+x.^2);
Q=quad(f,0,2)

结果Q =
    6.6667 正确
用@来表达函数要比inline应用更广,在循环中应用更有利!

本人对matlab认知尚浅,不知道上面的说法有什么不妥的地方还请指正!

---------------------------分割线-------------------------------

matlab的积分个人感觉好奇怪,各种报错,楼主这种方法的确可用。

起初我用int(y,x)求积分,结果得到的还是int,也就是积不出来,所以开始使用数值近似解积分quad

不知道为什么我quad(f,0,inf)会报错说超出数值解,但是我用quad(f,0,10000)却可以。。。一直以为是我式子不对导致不收敛

时间: 2024-10-12 13:45:00

matlab进行数值近似积分,含变化的常数做为参数的相关文章

if 判断两个数值大小--多分支if语句实现对参数的严格判断

if 判断两个数值大小--多分支if语句实现对参数的严格判断 #!/bin/bash print_usage(){ printf"你输入的参数个数不对或者有误,请按照下面语法执行:\n" echo -e "$0 数字1 数字2" exit1 } if[ $# -ne 2   ] then print_usage exit1 fi [  -n "`echo $1|sed 's/[0-9]//g'`" -a-n "`echo $2|sed

Matlab学习------数值,变量和表达式

(1)复数 复数输入可以直接按照表达式输入(用变量时尽量不要用),也可以在数字和虚部之间添加 * 举例: >> num=3+4i num = 3.0000 + 4.0000i >> num=3+4*i num = 3.0000 + 4.0000i 复数操作函数: real(z) 求复数的实部: imag(z)求复数的虚部: abs(z)计算复数的模: angle(z)计算复数的相角. 实例: >> num=3+4*i num = 3.0000 + 4.0000i >

编程代写代做|C代写|C++代写|Java项目代写|Matlab代写|VB代写|项目代做

详细资料请查阅:置顶文章   专业,高效,原创 国内TOP5高校计算机工程师个人代写 QQ(24小时在线): 1926742804 如紧急可发送资料到:[email protected] 我的网站:http://daixiecplusplus.sxl.cn/

MATLAB函数表(转自:http://bbs.06climate.com/forum.php?mod=viewthread&tid=16041&extra=page%3D4)

MATLAB函数表 4.1.1特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 nargin 输入参数个数 nargout 输出参数的数目 pi 圆周率 nargoutchk 有效的输出参数数目 realmax 最大正浮点数 realmin 最小正浮点数 varargin 实际输入 的参量 varargout 实际返回的参量     4.1.2操作符与特殊字符 + 加 -

MATLAB的符号运算基础

作者:长沙理工大学 交通运输工程学院 王航臣 在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLAB具有符号数学工具箱(SymbolicMath Toolbox),将符号运算结合到MATLAB的数值运算环境.符号数学工具箱是建立在Maple软件基础上的. (一)  符号变量建立符号变量和符号常数 建立符号变量的方法有两种,应用,应用sym与syms函

MATLAB入门笔记

% MATLAB:MATLAB 为 Matrix Laboratory ,用来处理矩阵可编程可实现算法逻辑的计算工具% % eg:1 绘制正弦和余弦曲线x=[0:0.1:4*pi]; %建立角度向量plot(x,sin(x),x,cos(x)) %画图axis([0,2*pi,-1,1]) %设定坐标轴范围title(′正弦和余弦曲线′); %图形名称xlabel(′θ(弧度)′) %x轴名ylabel(′y′) %y轴名legend(′sinθ′,′cosθ′); %图例grid on; %网

[转] Matlab中给信号加高斯白噪声的方法

MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度. y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗. y = wgn(m,n,p,imp,state) 重置RANDN的状态. 在数值变量后还可附加一些标志性参数: y = wgn(

Matlab计算多幅遥感影像交集面积占比

一个文件夹中有同一时间不同的遥感影像,有LST NDVI.反射率等,而想要知道这些像元数量相同,填充值和背景值均为nan的影像的交集部分占该影像研究区(已经经过研究区矢量裁剪)的比例,以及不同类别遥感影像的覆盖面积比例,主要目的是想以多种数据交集覆盖面积比例来判断改天是否适合数据反演 1 函数 函数基本结构 function[输出形参表: output1, ...,outptn] = 函数名(输入形参表: input1, ... , inputn) 注释说明部分 函数体代码部分 end 函数名:

编写 Matlab mexFunction (C mex)

资料一 MATLAB的MEX文件编写和调试 1. MEX的编写格式 写MEX程序其实就是写一个DLL程序,所以你可以使用C,C++,Fortran等多种编程语言来写. 编写MEX程序的编辑器可以使用MATLAB的代码编辑器,也可使用自己的C++编辑器,如VS2008等. 用MATLAB的编辑器的好处是,MEX函数会加粗高亮显示,这给程序编写带来便利,可惜无法动态调试.如用VC即可编译也可调试,比较方便.mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件,所以会用VC编写