错误的意思是,你不能 吧 变量变为bouble,因此,f(x)应该写为f,修改的程序如下:\x0d\x0asyms x \x0d\x0af=input('function');\x0d\x0an=input('times of derivation');\x0d\x0as=1;\x0d\x0awhile s<=n;\x0d\x0a f=diff(f,s)+f;\x0d\x0a s=s+1;\x0d\x0aend\x0d\x0a测试通过,祝顺利!
第一个问题:
f(x),系统将带()的数看做对数组元素的调用,而不是一个整体,因此可以用y或者f替代;
第二问题:
要求多阶导数展开式,我的理解是y=f(n)+f(n-1)+f(n-2)+...+f(0)
%公式打不出来,我用f(n)表示n阶导数,
而如果按照你的循环,可能不是这个结果,比如:
s=3
n=1, y=f(1)+f(0);
n=2, y=f(2)+f(1)+f(1)+f(0)=f(2)+2*f(1)+f(0) ;
n=3, y=f(3)+2*f(2)+f(1)+f(2)+2*f(1)+f(0) ;
建议:
%%%%%%%%%%%%%%%%%%%%%%%
syms x y f temp ;
y=input('function');
n=input('times of derivation');
% x表示变量,y表示需要处理的函数,f表示最终结果,temp存储中间变量
s=1;
temp=y;
while s<=n;
temp=diff(y,s);
f=f+temp;
s=s+1;
end
%%%%%%%%%%%%%%%%%%%%
不知道我的理解是否对,希望对楼主有帮主。
错误的意思是,你不能 吧 变量变为bouble,因此,f(x)应该写为f,修改的程序如下:
syms x
f=input('function');
n=input('times of derivation');
s=1;
while s<=n;
f=diff(f,s)+f;
s=s+1;
end
测试通过,祝顺利!