作业帮 > 综合 > 作业

matlab中,希望求函数f(x)=x的1/3次方,及其导函数z=df(x)/dx

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 21:32:35
matlab中,希望求函数f(x)=x的1/3次方,及其导函数z=df(x)/dx
程序如下:
syms x;
f=nthroot(x,3);
f1=diff(f);
pretty(f1);
x1=-5:0.1:5;
y=subs(f,x,x1);
y1=subs(f1,x,x1);
plot(x1,y,x1,y1,':');
第二行f=nthroot(x,3);错误
若第二行改为f=x^(1/3);则当x为负数时系统计算结果为复数.
请问如何修改?
matlab中,希望求函数f(x)=x的1/3次方,及其导函数z=df(x)/dx
对于x^(1/3)来说,其实不光x0时,也是有虚数根的
只不过M软件只给出第一个根,所以看不见虚根,这是复变函数的内容,你看:
>> solve('x^3=1')
ans =
1
-1/2+1/2*i*3^(1/2)
-1/2-1/2*i*3^(1/2)
----------------------------------------
楼主的意思是只要实根,不要虚根?好吧,试试看(当然,会报错,没做处理,不影响的):
clear all;clc;
syms x a
f=solve('a^3=x','a')
ff=diff(f);
t=-5:0.1:5;
for ii=1:length(t)
if t(ii)=0
y(ii)=subs(f(1),x,t(ii));
yy(ii)=subs(ff(1),x,t(ii));
end
end
plot(t,real(y));hold on;
plot(t,real(yy),'r');