zbb
2008-05-15, 11:39
刚接触matlab,跪求各位高手了。。。。。。
由于函数较复杂g=exp(-r*(1- s*(1-p+p*s)/((1+p)^(N-1)+s*(1-p+p*s)*(1-(1+p)^(N-1)))));
想求其各阶导数,但到十几阶之后导数式子很复杂,赋值代入很慢,用工作站跑起来也很慢,貌似需要很多天
先把程序附上,求教各位高手,有没有好的方法,请不吝赐教
syms g; syms s; syms p;syms N; syms f;syms r;syms i;
g=exp(-r*(1- s*(1-p+p*s)/((1+p)^(N-1)+s*(1-p+p*s)*(1-(1+p)^(N-1)))));
L1=zeros(100,1); j=1;
for i=1:100;
g=diff(g,'s');
r=1;s=0; N=200;p=10^(1/200)-1;
f=subs(g);
j=j*i;
L1(i)=f/j
end;
plot([1:100],L1);
由于函数较复杂g=exp(-r*(1- s*(1-p+p*s)/((1+p)^(N-1)+s*(1-p+p*s)*(1-(1+p)^(N-1)))));
想求其各阶导数,但到十几阶之后导数式子很复杂,赋值代入很慢,用工作站跑起来也很慢,貌似需要很多天
先把程序附上,求教各位高手,有没有好的方法,请不吝赐教
syms g; syms s; syms p;syms N; syms f;syms r;syms i;
g=exp(-r*(1- s*(1-p+p*s)/((1+p)^(N-1)+s*(1-p+p*s)*(1-(1+p)^(N-1)))));
L1=zeros(100,1); j=1;
for i=1:100;
g=diff(g,'s');
r=1;s=0; N=200;p=10^(1/200)-1;
f=subs(g);
j=j*i;
L1(i)=f/j
end;
plot([1:100],L1);