首页 > 编程知识 正文

matlab中如何求积分,matlab定义积分函数

时间:2023-05-04 05:28:01 阅读:226109 作者:1871

(一)前言

本文介绍一个使用Matlab进行求分段函数积分值的方法。

首先介绍如何使用int()对连续函数进行积分的求解,然后介绍一个对分段函数进行求积分的例子。

(二)使用Matlab求定积分

Matlab中求积分的函数为int(),调用形式为int(func, 'x', a, b),其中func为被积函数,x为积分变量,[a, b]为被积区间。

如int(x^2, 'x', 1, 2)为求函数y=x^2在区间[1, 2]的积分值,结果为7/3。

注意:在使用int()进行积分时,需要将积分变量定义为系统变量(我使用具体的值的时候经常出现问题)。并且许多系统自带的函数不能用int()进行积分,实际上自己写的函数(即函数文件名)也不能写在func参数上,而直接将x^2写入就没问题。这个部分如果以后知道了原因或者具体的细节再进行补充。

(三)分段函数的数值积分

对于分段函数,我们不能直接把整个函数直接写入func参数中(毕竟表达式都不一样,但是如果函数文件可以的话或许可以解决),我这里写一个参数可变的积分函数进行分段函数积分的求解,函数如下:

%myint.m

function [ out ] = myint(t, F1, L1, R1, F2, L2, R2, F3, L3, R3, F4, L4, R4)

% MYINT 分段函数积分

% 最多支持4段

% 第一个参数为积分变量

% 后面的参数格式为:函数func 区间左端点L 区间又端点R

if(nargin>=1) %一段

out=int(F1,t,L1,R1);

end

if(nargin>=5) %两段

out=out+int(F2,t,L2,R2);

end

if(nargin>=8) %三段

out=out+int(F3,t,L3,R3);

end

if(nargin>=11) %四段

out=out+int(F4,t,L4,R4);

end

end

这样的话就可以一次性把分段函数的多段传入进行求解,比如一个函数fx=2x+1,(x<0), fx=-2x+1 (x>0),则fx在区间[-0.5,0.5]的积分可以表达为: f1=2*x+1; f2=-2*x+1; myint('x', f1, -0.5, 0, f2, 0, 0.5); 计算结果为1/2。

看到这里你可能会感到有些失望--这不就是把几个函数写一块了嘛?!的确是这样的(利用Matlab的多目表达式甚至可以一行就写完)。如果大家有更好的方法,烦请告知,欢迎留言。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。