Matlab里面怎么求一个分段函数的积分

例如一个函数
y=x(0<=x<=1);
y=-1(1<x<=2);
y=0(其他)
怎么求出它的积分,并且画出图像来?

    如果函数时解析的,可以试试int求精确解;

     如果函数不是很简单的解析,那么用数值方法,quad积分;

      如果分段是不连续的,那么就要分段积分了,如果连续就不需要单独对每段处理。

    积分图像,
    x0=-1:0.01:0;y0=zeros(size(x0));x1=0:0.01:1;y1=x1;x2=1:0.01:2;y2=-ones(size(x2));x3=2:0.01:3;y3=zeros(size(x3));plot(x0,y0,x1,y1,x2,y2,x3,y3)
    或者:
    x0=-1:0.01:0;y0=zeros(size(x0));x1=0:0.01:1;y1=x1;x2=1:0.01:2;y2=-ones(size(x2));x3=2:0.01:3;y3=zeros(size(x3));stem(x0,y0),hold on,stem(x1,y1),hold on,stem(x2,y2),hold on,stem(x3,y3)。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
图像可分段画,如下语句:
x0=-1:0.01:0;y0=zeros(size(x0));x1=0:0.01:1;y1=x1;x2=1:0.01:2;y2=-ones(size(x2));x3=2:0.01:3;y3=zeros(size(x3));plot(x0,y0,x1,y1,x2,y2,x3,y3)

积分可分段积分,如下
f=0+int(x,0,1)-1*2+0追问

Attempt to execute SCRIPT x as a function:
D:\Matlab\bin\x.m

Error in x (line 4)
f=0+int(x,0,1)-1*2+0
这是什么问题?

追答

出错是因为你有一个x.m文件
把积分的语句改为:
syms x
f=0+int(x,0,1)-1*2+0

追问

这个只求出了积分值,那么积分图像怎么画呢?

追答

x0=-1:0.01:0;y0=zeros(size(x0));x1=0:0.01:1;y1=x1;x2=1:0.01:2;y2=-ones(size(x2));x3=2:0.01:3;y3=zeros(size(x3));plot(x0,y0,x1,y1,x2,y2,x3,y3)
或者:
x0=-1:0.01:0;y0=zeros(size(x0));x1=0:0.01:1;y1=x1;x2=1:0.01:2;y2=-ones(size(x2));x3=2:0.01:3;y3=zeros(size(x3));stem(x0,y0),hold on,stem(x1,y1),hold on,stem(x2,y2),hold on,stem(x3,y3)

本回答被提问者和网友采纳
相似回答