matlab分段函數繪圖


matlab分段函數繪圖

原文地址: matlab分段函數繪圖 作者: 郝明剛

1.一元分段函數繪圖

例如:

matlab分段函數繪圖 - 黑暗之子 - 黑洞

 

 

把下面的函數保存為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:');%畫區間間隔線

matlab分段函數繪圖 - 黑暗之子 - 黑洞

                        一元分段函數圖

 

 

 

 

 

 

 

 

2.二元分段函數繪圖

例如:

matlab分段函數繪圖 - 黑暗之子 - 黑洞

 

 

把下面的函數保存為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)

matlab分段函數繪圖 - 黑暗之子 - 黑洞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                       二元分段函數圖

 
 
 
 
 
 
 
 
 
 
 
3  鑒於對matlab了解不深,最近參考了一些資料,搞明白了一個用matlab畫分段函數的方法。

舉例如下:

                             查看更多精彩圖片

在matlab中,>> x1=0:0.01:1;
                      >> x2=1:0.01:2;

                      >> y1=x1;
                      >> y2=2-x2;
                      >> x=[x1,x2];
                     y=[y1,y2];
                     plot(x,y)

 

查看更多精彩圖片

 

4例2

0<t<1 u(t)=0
其他時候u(t)=1
這個用matlab語言怎么定義函數u

如下:

function myfun(t) if 0<t && t<1 u=0 else u=1 end 輸入myfun(8),可以得到結果
例3
比如說y=5/cos(x),我想繪制此曲線.但是x的定義域中不能包括1/2*pi和3/2*pi,怎樣才能定義x,可以在除x=1/2*pi和3/2*pi以外繪制區間為[0,2*pi]的曲線. 謝謝各位厲害的大蝦幫忙. 盡量寫得詳細一些.
如下:
>> x=0:.001:2*pi; >> c=.1; >> y=5./cos(x); >> y(abs(x-pi/2)<c | abs(x-3*pi/2)<c)=NaN; >> plot(x,y);
例4 比較經典的一個分段函數繪圖例子
x=-3:0.01:3; 
y1=zeros(size(x)); 
y2=zeros(size(x)); 
y3=zeros(size(x)); 
N=length(x); 
for k=1:N 
if x(k)<-1&x(k)>=-3; 
y1(k)=(-x(k).^2-4*x(k)-3)/2; 
elseif x(k)>=-1&x(k)<1 ; 
y2(k)=-x(k).^2+1; 
else x(k)<=3&x(k)>=1 ; 
y3(k)=(-x(k).^2+4*x(k)-3)/2; 
end 
end 
y=y1+y2+y3; 
plot(x,y) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM