用matlab怎样画分段函数图
还有两个f(xi)函数与上述函数一样怎样让他们在一个图像中输出??急求!!!!!
s1 s2是常数。。。但现在不知道。。。 展开
1.一元分段函数绘图
例如:
把下面的函数保存为Piecewise_x.m文件
function F=Piecewise_x(x)
F=x.^2.*(x>=0 & x<1)+cos(pi*(x-1)).*(x>=1 & x<2)+(-x.^2./(x+2)).*(x>=2 & x<=4);
end
运行:
x=linspace(0,4);
F=Piecewise_x(x);%计算相应函数值
plot(x,F);%绘制曲线
hold on;
plot(1*ones(1,2),ylim,'r:');%画区间间隔线
plot(2*ones(1,2),ylim,'r:');%画区间间隔线
2.二元分段函数绘图
例如:
把下面的函数保存为Piecewise_xy.m文件
function Pxy=Piecewise_xy(x,y)
Pxy=0.5457*exp(-0.75*y^2 - 3.75*x^2 - 1.5*x).*(x+y>1)+...
0.7575*exp(-y^2 - 6*x^2).*(x+y>-1)+...
0.5457*exp(-0.75*y^2 - 3.75*x^2 + 1.5*x).*(x+y<=-1);
end
运行:
[x,y]=meshgrid(-3:0.1:3);
s=size(x)
Pxy=zeros(s(1),s(2));
for i=1:s(1)
for j=1:s(2)
Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j));
end
end
mesh(x,y,Pxy)
一元分段函数图2.二元分段函数绘图例如:把下面的函数保存为Piecewise_xy.m文件functionPxy=Piecewise_xy(x,y)Pxy=0.5457*exp(-0.75*y^2-3.75*x^2-1.5*x).*(x+y>1)+... 0.7575*exp(-y^2-6*x^2).*(x+y>-1)+... 0.5457*exp(-0.75*y^2-3.75*x^2+1.5*x).*(x+y<=-1);end运行:[x,y]=meshgrid(-3:0.1:3);s=size(x)Pxy=zeros(s(1),s(2));fori=1:s(1) forj=1:s(2) Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j)); endendmesh(x,y,Pxy)
二元分段函数图
一次画一截,然后hold on,再画另外一截。
能不能给出具体编程语句。。。函数是我上面说的
方法一:
%例如s1=-1,s2=1
%xs2 f(x) = 0
x3=1:4/20:5;
y3=0+0*x3;
plot(x1,y1,x2,y2,x3,y3);
axis([-5,5,-1,2]);
结果如图
方法二:
%例如s1=-1,s2=1
%xs2 f(x) = 0
x3=1:4/20:5;
y3=0+0*x3;
plot(x3,y3);
axis([-5,5,-1,2]);
结果如图
注意我把你的函数第二段改了下
plot();第一段
hold on;
plot();第二段
hold on;
plot();第三段