matlab画函数图像

发布网友

我来回答

3个回答

热心网友

x =linspace(-5,5,10000);

y = (x.^3 -2*x.^2).^(1/3);

figure,

plot(x,y)

你看递增否?

我详细看了一下,问题出在开立方上面,matlab开立方有点问题,

(-)^(1/3) = 4,但是matlab算出来是

(-)^(1/3) = 2.0000 + 3.41i,

( 2.0000 + 3.41i)^3 = -63.9999 + 0.0000i,

如你所持指出的一样,

x=-2,y = (-16)^(1/3) =-2.5198,

x =-1, y =(-3)^(1/3) = -1.4422,

但是实际上matlab算出来的是复数,问题主要出在当y时负数的时候,matlab是按照复数来处理的。

x=-2,y = (-16)^(1/3) = 1.2599 + 2.1822i ,

x =-1, y =(-3)^(1/3) =   0.7211 + 1.2490i,

(-16)^(1/3) = (16*exp(Pi*i))(1/3) =(16)^(1/3)exp(Pi/3*i) =  1.2599 + 2.1822i,这个时候为了*解在实数域,可以   x^(1/3) = sign(y)(abs(x)^(1/3)),也就是(-16)^(1/3)  = -(16^(1/3)),来规避这一问题。

x =linspace(-5,5,10000);

y = (x.^3 -2*x.^2);

signY = sign(y);

thirdthPowerY = abs(y).^(1/3);

realY = signY .* thirdthPowerY ;

figure,

plot(x,realY)

这个图应该是对的,如你所说的区间是递增的。

热心网友

直接输入命令:
x:=0:0.01:1;
y=x;
plot(x,y)
很久没用了,大概是这样,你试试!

热心网友

x:=0:0.01:1;

热心网友

x =linspace(-5,5,10000);

y = (x.^3 -2*x.^2).^(1/3);

figure,

plot(x,y)

你看递增否?

我详细看了一下,问题出在开立方上面,matlab开立方有点问题,

(-)^(1/3) = 4,但是matlab算出来是

(-)^(1/3) = 2.0000 + 3.41i,

( 2.0000 + 3.41i)^3 = -63.9999 + 0.0000i,

如你所持指出的一样,

x=-2,y = (-16)^(1/3) =-2.5198,

x =-1, y =(-3)^(1/3) = -1.4422,

但是实际上matlab算出来的是复数,问题主要出在当y时负数的时候,matlab是按照复数来处理的。

x=-2,y = (-16)^(1/3) = 1.2599 + 2.1822i ,

x =-1, y =(-3)^(1/3) =   0.7211 + 1.2490i,

(-16)^(1/3) = (16*exp(Pi*i))(1/3) =(16)^(1/3)exp(Pi/3*i) =  1.2599 + 2.1822i,这个时候为了*解在实数域,可以   x^(1/3) = sign(y)(abs(x)^(1/3)),也就是(-16)^(1/3)  = -(16^(1/3)),来规避这一问题。

x =linspace(-5,5,10000);

y = (x.^3 -2*x.^2);

signY = sign(y);

thirdthPowerY = abs(y).^(1/3);

realY = signY .* thirdthPowerY ;

figure,

plot(x,realY)

这个图应该是对的,如你所说的区间是递增的。

热心网友

直接输入命令:
x:=0:0.01:1;
y=x;
plot(x,y)
很久没用了,大概是这样,你试试!

热心网友

x:=0:0.01:1;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com