![]() |
[求助]想求e指数函数的N次导数
刚接触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); |
各位高手请帮帮忙啊
我真的没有办法了 谢谢各位阿。。。。。。 |
没有人帮帮我吗 :cry:
|
:cry:
|
syms s p N r
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; g=diff(g,'s'); r=1;s=0; N=200;p=10^(1/200)-1; f=subs(g); n=1:100; L1=f./factorial(n); plot([1:100],L1); 解释: factorial(n) 就是求阶乘的,你的f 原来只需要算一次,所以 放到你的for 循环里,就多计算了99次,增加了它的计算量,并且阶乘也是你自己编程算,这个没有直接调用 函数 算起来快 在计算一个程序前,如果以前的程序结果你不需要调用,建议加 “clear” (清除内存中的变量) |
你原来的程序里 没有求 高阶导数吧 :smile:
|
对不起,我看错了一点你的程序,
我觉得你的程序好像是在算 泰勒展开式哦 ! taylor 就是泰勒展开式的命令,你看下 能说下你的要做什么不?这样更容易帮到你:heart: |
回复: [求助]想求e指数函数的N次导数
我已经用泰勒展开搞定了 谢谢你哦 :)
|
所有时间均为北京时间。现在的时间是 03:15。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.