关于MATLAB中分段函数的画法

合集下载

matlab 分段函数

matlab 分段函数

matlab 分段函数

分段函数又称为分段定义函数,是指由不同的函数段组成的函数。它可以用以下形式来表示:

$$

f(x)=\begin{cases}

f_1(x),&a_1\le x<b_1\\

f_2(x),&a_2\le x<b_2\\

\cdots \\

f_n(x),&a_n\le x<b_n\\

\end{cases}

$$

其中 $f_1(x),f_2(x),\cdots,f_n(x)$ 是不同的函数,在不同的区间上定义。$a_1,a_2,\cdots,a_n$ 和 $b_1,b_2,\cdots,b_n$ 是这些区间的端点。

分段函数常用于描述含有明显不同的运动阶段的物理系统或经济系统等。在 MATLAB 中,我们可以使用 `piecewise` 函数来定义分段函数,例如:

```

syms x

f = piecewise(x<0, 0, 0<=x<1, x, 1<=x<2, 2-x, x>=2, 0)

```

这段代码定义了一个分段函数 $f(x)$,在 $x<0$ 时取值为 $0$,在 $0\le x<1$ 时取值为 $x$,在 $1\le x<2$ 时取值为 $2-x$,在$x\ge2$ 时取值为 $0$。

使用分段函数可以方便地描述复杂的函数关系,同时也便于求解和绘制函数图像。

matlab编写分段函数

matlab编写分段函数

matlab编写分段函数

这里是一段以Matlab编写的分段函数的示例:

函数名:分段函数

输入参数:x

输出参数:y

函数定义:

当x小于0时,y等于0。

当x在0到1之间时,y等于x。

当x等于1时,y等于2。

当x大于1时,y等于x的平方加1。

该分段函数以 x 为自变量,根据不同的 x 取值返回不同的 y 值。具体如下:

当 x<0 时,函数返回值为 0 ;

当 0<=x<1 时,函数返回值为 x ;

当 x=1 时,函数返回值为 2 ;

当 x>1 时,函数返回值为 x^2+1。

以上即是该分段函数的定义。

matlab拟合分段函数

matlab拟合分段函数

matlab拟合分段函数

在MATLAB中,拟合分段函数可以通过多种方法实现。这里将介绍两种主要方法:分段线性拟合和分段多项式拟合。

1.分段线性拟合:

分段线性拟合是将整个函数区间分成多个小区间,在每个小区间内使用线性函数进行拟合。这种方法适用于函数在不同区间内的变化趋势不同的情况。

首先,我们需要定义函数的分段点。假设我们的函数在x=0、x=1和x=2处有拐点,我们可以按照以下方式定义这些分段点:

xdata = [0, 1, 2];

接下来,我们需要给出函数在每个区间内的取值,这些值可以通过观察得到或通过其他方法计算得出。假设我们的函数在这些分段点处的取值分别为:

ydata = [1, 4, 2];

现在,我们可以使用polyfit函数进行分段线性拟合:

p = polyfit(xdata, ydata, 1);

这里的1表示我们要拟合的线性函数的阶数。我们还可以使用polyval函数来计算拟合得到的函数在任意点的取值:

x=0:0.1:2;

y = polyval(p, x);

最后,我们可以使用plot函数将原始数据点和拟合得到的分段线性函数画在同一张图上,以进行比较:

figure

plot(x, y, 'r-', xdata, ydata, 'bo')

legend('分段线性函数', '原始数据点')

2.分段多项式拟合:

分段多项式拟合是将整个函数区间分成多个小区间,在每个小区间内使用不同的多项式函数进行拟合。这种方法适用于函数在不同区间内的曲线特征不同的情况。

和分段线性拟合类似,我们需要首先定义分段点和函数在这些分段点处的取值:

用matlab画分段函数

用matlab画分段函数

用mat l ab画分段函数

我们首先给出第一个分段函数,

x1=20:0.1:40;

y1=s i n(x1);

m a t l a b如何画分段函数

接着我们绘画第二个分段函数;

x2=40:0.2:60;

y2=0.02*x2;

m a t l a b如何画分段函数

这样我们就把他们画出来了,如果不需要加l e g e n d可以直接通过h o l d o n的方式把他们画在一起。

m a t l a b如何画分段函数

如果需要画在一起,可以添加一个新的变量x=[x1,x2];

y=[y1,y2];

m a t l a b如何画分段函数

然后通过p l o t把他们画出来,如果需要添加其他函数,然后按类似的方法进行添加。

m a t l a b如何画分段函数

这样画出来的函数,l e g e n d添加时候,他们是一个曲线,而非两个曲线。

— 1 —

曲线分段 matlab

曲线分段 matlab

曲线分段 matlab

介绍

在数学和计算机科学的领域中,曲线分段是一种常见的技术。在matlab中,我们

可以使用不同的方法来实现曲线分段。本文将介绍曲线分段的概念、matlab中的

实现方法以及一些实际应用。

概念

曲线分段是将一个连续的曲线分割成多个段的过程。每个段都可以用一个简单的函数或模型来表示。这种分段的方法可以使得对复杂曲线的处理更加简单和高效。

matlab中的实现方法

在matlab中,有几种常见的方法可以实现曲线分段。下面将介绍其中的几种方法。

1. 多项式拟合

多项式拟合是一种常见的曲线拟合方法。在matlab中,可以使用polyfit函数来

进行多项式拟合。通过选择适当的多项式阶数,可以将曲线拟合成多个段的形式。

2. 样条插值

样条插值是一种通过一系列节点来近似曲线的方法。在matlab中,可以使用

interp1函数进行样条插值。通过选择适当的节点和插值方法,可以将曲线分割成

多个段。

3. 分段线性插值

分段线性插值是一种简单而有效的曲线分段方法。在matlab中,可以使用interp1函数的'linear'方法进行分段线性插值。通过选择适当的节点,可以将曲线分割成

多个线性段。

实际应用

曲线分段在许多领域中都有广泛的应用。下面将介绍几个实际应用的例子。

1. 图像处理

在图像处理中,曲线分段可以用于图像的边缘检测和分割。通过将图像中的曲线分割成多个段,可以更好地提取出图像中的边缘信息。

2. 机器学习

在机器学习中,曲线分段可以用于特征提取和模式识别。通过将复杂的曲线分割成多个简单的段,可以更好地表示和处理数据。

用matlab画分段函数

用matlab画分段函数

用Matlab画分段函数

例1 用matlab画分段函数y=sin(x), 当y<0时y=0 ;当y>0.8时y=0.8 x=-2:0.1:2; y=0.*(x<0)+sin(x).*(x<=0.8&x>=0)+0.8*(x>0.8);

plot(x,y,'r')

例2 高数中的的取整函数y=[x]

Ex-1: >> x=0:0.001:4;

>> y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3);

>> plot(x,y,'-r')

Ex-2: x=0:0.001:4;

y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3);

k1= find(x==1); k2= find(x==2); k3= find(x==3); k4= find(x==4);

plot(x(1:k1-1),y(1:k1-1),'b', x(k1+1:k2-1),y(k1+1:k2-1),'r')

hold on

plot(x(k2+1:k3-1),y(k2+1:k3-1),'c',x(k3+1:k4-1),y(k3+1:k4-1),'m')

hold off

例3 matlab 绘制分段函数x>=1,y=exp(-(x-1)^2); x<1,y=x^2.其中曲线为绿虚线,并进行标注

x=-4:0.01:4;

y=(x<1).*(x.^2)+(x>=1).*(exp(-(x-1).^2));

plot(x,y,'b')

text(-2,5,'\leftarrow y=x^2','FontSize',9)

分段函数的matlab———m文件定义及其画图

分段函数的matlab———m文件定义及其画图

分段函数的matlab———m文件定义及其画图

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));

MATLAB如何画分段函数的图像

MATLAB如何画分段函数的图像

MATLAB如何画分段函数的图像

MATLAB如何画分段函数的图像

通常要⽤MATLAB画分段函数图像的话,总要分段去画⾮常⿇烦,还需要hold on,现在教你⼀种简单化分段函数的⽅法,让你⼀下⼦知道这个⽅法的魅⼒!!

打开MATLAB软件,粘贴以下代码:

clc; clear all

x=0:0.01:10;

y=sqrt(x).(x>=0&x<4)+2(x>=4&x<6)+(5-x/2).(x>=6&x<8)+1(x>=8);

plot(x,y,'r','linewidth',2)

axis([0 10 0 2.1])

grid on

解释⼀下,代码的逻辑运算符是这个程序成败的关键,利⽤了判断逻辑数和向量之间的相乘,构造分段函数的表达式

点击运⾏,即可以得到分段函数的图像了。

END

注意事项

前⾯的表达式和后⾯的逻辑判断相乘的时候,若前后均含有x,那么中间的乘号要是".*",即点+乘号。

matlab yalmip 写分段函数

matlab yalmip 写分段函数

matlab yalmip 写分段函数

MatlabYalmip是Matlab中的一个工具箱,可以用来优化控制、半正定规划、线性规划、二次规划、非线性规划等问题。在优化控制中,经常需要用到分段函数。本文将介绍如何在Matlab Yalmip中写分段函数。

1. 分段函数的定义

分段函数是指在定义域上分为若干个部分,每个部分有不同的表达式,这些表达式被称为分段函数的“分段定义”。分段函数的定义有两种不同的方式:

方式一:用函数表示

在定义域上,用不同的函数表达式来定义分段函数,如:

f(x) = { x^2, x<0; 2x, 0<=x<=1; 3x-1, x>1 } 方式二:用条件表达式表示

在定义域上,用条件表达式来定义分段函数,如:

f(x) = x^2, x<0; f(x) = 2x, 0<=x<=1; f(x) = 3x-1, x>1 2. 在Matlab Yalmip中写分段函数

在Matlab Yalmip中,可以使用sdpvar()函数定义变量,使用if2()函数定义分段函数。if2()函数的语法如下:

if2(condition, true_expression, false_expression) 其中,condition是一个逻辑表达式,true_expression和false_expression是两个表达式,如果condition为真,则返回true_expression,否则返回false_expression。

例如,要定义上面的分段函数,可以使用如下代码:

MATLAB 分段函数

MATLAB 分段函数

y1Βιβλιοθήκη Baidu=
-6.2500 所以,函数 f(x)的最小值为 f(-0.5)=-6.5.
hold on x5=2; y5=x5.^2-x5-1; plot(x5,y5,'b*'); hold on x6=3; y6=x6.^2-x6-1; plot(x6,y6,'g*'); title('函数 f(x)的图形'); text(-4,-20,'曲线 f1(x)=x^2+x-6'); text(2,40,'曲线 f2(x)=x^2-5x+6'); text(10,146,'曲线 f3(x)=x^2-x-1'); legend('f1(x)','f2(x)','f3(x)','x=-4','x=2','x=3'); 结果如图:
56 (2)图形 x1=(-5):0.01:0; y1=x1.^2+x1-6; plot(x1,y1,'m-'); hold on x2=0:0.01:10; y2=x2.^2-5*x2+6; plot(x2,y2,'r:'); hold on x3=10:0.01:15; y3=x3.^2-x3-1; plot(x3,y3); x4=-4; y4=x4.^2-x4-1; plot(x4,y4,'p');

matlab用function写分段函数

matlab用function写分段函数

matlab用function写分段函数

Matlab 是一种强大的数值计算和科学编程软件,在其中编写函数是非常常见的任务之一。在本文中,我们将介绍如何使用Matlab 中的函数来编写一个分段函数,并且逐步解释每一步。

分段函数在数学和工程中非常常见。它表示为一系列不同的表达式或公式,在不同的输入范围内应用不同的规则。为了说明如何在Matlab 中编写分段函数,我们将考虑一个简单的例子。

假设我们想编写一个函数,计算输入值x 的绝对值。然而,当x 大于5 时,我们希望结果减去5。换句话说,我们的分段函数可以定义为以下规则:

- 如果x 小于等于5,则返回x 的绝对值。

- 如果x 大于5,则返回x 的绝对值减去5。

让我们依次编写这个分段函数。

步骤1:函数定义

在Matlab 中,我们首先需要定义一个函数。我们可以使用`function` 关键字来定义一个新的函数,并指定名称和输入参数。在这种情况下,我们的函数接受一个输入参数x。下面是我们的函数定义:

Matlab

function result = piecewiseFunction(x)

这里,我们定义了一个名为`piecewiseFunction` 的函数,并且指定了一个输入参数x。我们将函数的结果存储在变量`result` 中,以便稍后返回。

步骤2:分段规则

接下来,我们需要根据定义的规则实现分段函数的逻辑。在这种情况下,我们可以使用`if` 语句来检查不同的条件,并执行相应的操作。

Matlab

function result = piecewiseFunction(x)

matlab拟合分段函数

matlab拟合分段函数

matlab拟合分段函数

在Matlab中,可以使用多项式拟合函数polyfit来拟合分段函数。

假设我们要拟合一个三段函数,可以按照以下步骤进行:

1. 定义各个分段的函数形式。以三段函数为例,可以定义三个函数分别表示每个分段的表达式。

matlab

% 第一段函数

f1 = @(x) a*x^2 + b*x + c; % 根据实际情况定义参数a、b、c

% 第二段函数

f2 = @(x) d*x^2 + e*x + f; % 根据实际情况定义参数d、e、f

% 第三段函数

f3 = @(x) g*x^2 + h*x + i; % 根据实际情况定义参数g、h、i

2. 构建整个分段函数。

matlab

% 定义分段函数

f = @(x) piecewise(x < x1, f1(x), x1 <= x < x2, f2(x), x >= x2, f3(x)); % 根据实际情况定义分段点x1、x2

3. 生成数据。

根据具体情况,生成一组或多组x和y数据。

matlab

xData = [1, 2, 3, 4, 5]; % x数据

yData = [2, 4, 6, 8, 10]; % y数据

4. 使用polyfit函数进行拟合。

matlab

% 拟合

p = polyfit(xData, yData, n); % n为拟合多项式的阶数,根据实际情况确定

% 根据拟合结果计算分段函数参数

a = p(1);

b = p(2);

c = p(3);

d = p(4);

e = p(5);

f = p(6);

g = p(7);

matlab 函数作图

matlab 函数作图

03 函数作图

1 平面图形

(1)竖直条形图

调用格式为:bar(x,y)

(2)用描点法绘制函数y f ( x) 随x 从a 到b 间的图形.

调用格式为:x=a:h:b ;

y=f(x) ;

plot(x,y)

(3)在同一坐标系下绘制多个函数图

形.调用格式为:x=a:h:b ;

plot(x,y1,x,y2,…)

(4)绘制函数y=f(x)随x 从a 到b 间的图

形.调用格式为:explo t(‘f(x)’, [a,b])

(5)x 从x

a 到x

b

和y 从y

a

到y

b

间隐函数 f ( x, y) 0 的

图形.调用格式为:ezplo t(‘x’,’y’,[x

a

, x b , y a , y b ])

(6)绘制t 从t

a 到t

b

间参数方程x x(t ),y y(t )的函数图

形.调用格式为:ezplo t(‘x’,’y’,[t

a

, t b ])

(7)在一坐标系下可以绘制一个或多个显函数图形,对变化剧烈的函数,用此命令来进行较精确的绘画.

调用格式为:fplot(’fun(x)’,[a,b])

fplo t (‘[f1(x),f2(x),…]’,[a,b])

其中fun(x)可以是自定义函数,[f1(x),f2(x),…]是函数组.

(8)绘制散点图.调用格式为:scat

ter(x,y)

2 空间图形

(1)空间曲线.调用格

式为:plot3(x,y,z)

(2)产生一个以向量x 为行,向量y 为列的矩

阵.调用格式为:meshgrid(x,y)

(3)空间曲面.调用格式

为:surf(x,y,z)

(4)网格曲面.调用格

式为:mesh(x,y,z)

关于MATLAB中分段函数的画法

关于MATLAB中分段函数的画法

关于MATLAB中分段函数的画法.txt如果你看到面前的阴影,别怕,那是因为你的背后有阳光!我允许你走进我的世界,但绝不允许你在我的世界里走来走去。关于MATLAB中分段函数的画法

最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.

我把这些分段函数分为两类:

一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.

例 1.y={0,(x<0);1,(x>=0)};在x>-10&x<10区间内的图形

代码如下 :

x=-10:0.01:10;

y=ones(size(x));

y(x<=0)=0;

plot(x,y);

axis([-10 10 -0.5 1.5]);

这样的处理方法就是对于x是变量而Y为常量的而直接定义常数矩阵,再通过判断进行修改,只适合于Y为常量的基础上.

________________________________________________华丽分割线_______________________________________________

二.第二种是y=f(x),y是关于x的一个变量.需要将x进行赋值的分段函数.这种处理方法比较多.

这里引用一段经典matlab分段画图的例子给大家(代码为蓝色区域):

例 2: x=-3:0.01:3;

y1=zeros(size(x));

y2=zeros(size(x));

分段函数的matlab作图

分段函数的matlab作图

MATLAB 分段函数绘图

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));

分段曲线拟合matlab

分段曲线拟合matlab

分段曲线拟合matlab

分段曲线拟合(piecewise curve fitting)是指在拟合一个复杂函数时,将函数分成若干个简单的子段,然后对每个子段进行单独的拟合。在MATLAB 中,可以使用 fittype 函数和 fminsearch 函数来实现分段曲线拟合。

下面是一个简单的例子,演示如何使用MATLAB 进行分段曲线拟合:

matlab复制代码:

% 生成数据

x = linspace(0, 10, 100);

y = sin(x) + randn(size(x));

% 定义分段函数类型

ft = fittype('a1.*sin(b1*x + c1) + a2.*sin(b2*x + c2)', 'independent', 'x', 'dependent', 'y');

% 定义初始参数

startPoint = [1, 1, 0, 0, 1, 1];

% 进行拟合

[fitresult, gof] = fit(x', y', ft, 'Start', startPoint);

% 绘制拟合曲线

plot(fitresult, x, y);

在这个例子中,我们首先生成了一组数据,其中包含一个正弦波和一个随机噪声。然后,我们定义了一个分段函数类型 ft,该函数由两个正弦波组成。接着,我们定义了初始参数 startPoint,用于初始化拟合算法。最后,我们使用 fit 函数进行拟合,并使用 plot 函数绘制拟合曲线。

需要注意的是,分段曲线拟合的难点在于如何选择合适的分段方式和分段点。在实际应用中,需要根据具体情况进行调整和优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

么用,如果大家有兴趣,可以自己去查下资料. 举个例子 y=-exp(10.5*(x+0.5)) x<-0.5 y =exp(3.51*(x0.5))-2*exp(-3.51*(x+0.5)) y=-exp(10.5*(x+0.5)) x>0.5
(-0.5,0.5)
ቤተ መጻሕፍቲ ባይዱ
matlab x=-1:0.02:1; y=-exp(10.5*(x+0.5)).*( x<-0.5 )+... (exp(3.51*(x+0.5))-2*exp(-3.51*(x+0.5))).*(x>-0.5&x<0.5)... -exp(10.5*(x+0.5)).*(x>0.5); plot(x,y) semilogy(x,y)
二.第二种是 y=f(x),y 是关于 x 的一个变量.需要将 x 进行赋值的分段函数.这种处理 方法比较多. 这里引用一段经典 matlab 分段画图的例子给大家(代码为蓝色区域): 例 2: 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) 这里运用的是将 Y 的值设置成三个与 x 的数量相等的空变量.然后分别依次讲 X 的值通过 f(x)转换为 Y 然后画出图形并将三个图形进行组合.
______________________________________________________ _______________________________________________




线
是否除了这个方法,还有其他的解决方案呢?是有的. 这里将代码奉上,这个我告诉大家的第三个方法. x1=-3:0.01:-1; x2=-1:0.01:1; x3=1:0.01:3; y1=(-x1.^2-4*x1-3)/2; y2=-(x2).^2+1; y3=(-x3.^2+4*x3-3)/2; x=[x1,x2,x3]; y=[y1,y2,y3]; plot(x,y) axis([-3 3 0 1]); 有人觉得,第一种类型应该包含在第二种类型里面.便想用这个方法解决第一个问题, 却发现出错:还是用第一个例子吧. x1=-10:0.01:0; x2=0:0.01:10; y1=0; y2=1; x=[x1,x2]; y=[y1,y2]; plot(x,y); axis([-10 10 -0.5 1.5]); 如果这样输入的话,看起来是没错,但是编译的时候通不过,有这样的提示:Vectors must be the same lengths.提示你的 X,Y 的长度不同,不能画图. 怎样才能让 X,Y 的长度相同呢.这个有一个解决方法.使得这个方法通用性更强.就是 +X*0; 代码如下: x1=-10:0.01:0; x2=0:0.01:10; y1=0*x1; y2=1+0*x2; x=[x1,x2]; y=[y1,y2]; plot(x,y); axis([-10 10 -0.5 1.5]); 可以达到图 1 相同的效果. 不过这个方法有一个缺点就是无法设定图形的折点.比如例 2,你无法设定 x=1 和 x=-1 时,y 的值.如果不是 0.那么就有错误. __________________________________________________ 华 ____________________________________________________ 丽 分 割 线
现在说的最开始我讲的的那题.我讲它作为第三个例子来讲.是这样一 题:y={x,(x>1);x^2,(x>=1&x<=4);pow2(x),(x>4)};在区间(-10 10)里面的图形.
这是它的图形.那么大家想一下应该可以用几种方法解决呢? 下面我介绍给大家的一种最古老的,最笨而实在的方法.通过 IF 函数判断然后算出 Y 的值进行画图: 代码如下: i=1; for x=-10:0.05:10 if x<1 y(i)=x; elseif x>=1&x<4 y(i)=x.^2; else x>=4 y(i)=pow2(x); end i=i+1; end x=-10:0.05:10; plot(x,y) 这样通过计算出 Y 的值,然后再画出图形是可行的. 继续,另一种方法: fun=@(x)x.*(x<1)+(x.^2).*(x>=1&x<4)+(pow2(x)).*(x>=0&x<pi); %计算函数值 x=-10:10; y=fun(x); %绘制函数图形 fplot(fun,[-10 10]); axis([-10 10 -10 20]); 大家还想到什么方法?这里我用我上面提到的第三种方法来试试. x1=-10:0.01:1; x2=1:0.01:4; x3=4:0.01:10; y1=x1; y2=(x2).^2; y3=pow2(x3); x=[x1,x2,x3]; y=[y1,y2,y3]; plot(x,y) axis([-10 10 -10 20]); 果然 OK,那么到现在,大家学会了几种方式去画分段函数呢? *另外还有一种方法,是用 stepwise 函数直接计算分段函数,不过这个方法我查不到怎
关于 MATLAB 中分段函数的画法 最近拿到一题关于 MATLAB 的分段函数画法的题目,我在网上找了挺久,但没发现很多有 用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见 笑. 我把这些分段函数分为两类: 一.对于 y=f(x)这个模型来讲,一类是关于其中一个段是 y 为常量的一个模型,举例说 明. 例 1.y={0,(x<0);1,(x>=0)};在 x>-10&x<10 区间内的图形 代码如下 : x=-10:0.01:10; y=ones(size(x)); y(x<=0)=0; plot(x,y); axis([-10 10 -0.5 1.5]); 这样的处理方法就是对于 x 是变量而 Y 为常量的而直接定义常数矩阵,再通过判断进 行修改,只适合于 Y 为常量的基础上. ________________________________________________ _______________________________________________ 华 丽 分 割 线
相关文档
最新文档