紧急求助,程序调用问题
<P>麻烦各位大虾看一下下面一段程序,运行不了。定义了两个函数,y1要调用函数y2.<br>不知道怎么调用。<br><br><br><br>function y1= jieguo(ts,y,s)<br>a=0;<br>ts=8;<br>s=4;<br>y=10000/24*1.1*1.3;<br>for i=0:s-1;<br>a=0;<br>a=a+ts*y/3600)^i/jiecheng(i);<br>end<br>b=(ts*y)^s/jiecheng(s-1)/(3600-ts*y)*3600^(s-1);<br>c=3600^(s-1)*jiecheng(s-1)*(3600*s-y*ts);<br>c=c*(a+b);<br>d=(ts*y)^(s+1)/c;<br>lq=d;<br>end</P><P>function y2= jiecheng(n)%求n的阶乘<br>double p;<br>p=1;<br>double n;<br>%n=4;<br>for i=1:n<br> p=p*i;<br>end<br>re=p;<br>end</P>
[此贴子已经被VibInfo于2006-1-10 20:27:50编辑过]
回复:(云雨)紧急求助,程序调用问题
这个程序本身思路就有问题<BR>ts,y,s既然是传递变量怎么又在程序中定义?回复:(云雨)紧急求助,程序调用问题
另外两个函数的都没有设置返回值<br><br>y2应该改成:<br>function y2= jiecheng(n)%求n的阶乘<br>%double p;<br>p=1;<br>%double n;<br>%n=4;<br>for i=1:n<br> p=p*i;<br>end<br>y2=p;<br><br><br>第一个程序不知道你要返回什么,参照上面自己该吧[此贴子已经被作者于2006-1-11 9:47:15编辑过]
谢谢,我明白了一些,可是还有问题。改成这样:<BR>ts=8;%计算排队长度lq<BR>s=4;<BR>y=10000*1.1*1.3;<BR>a=0;<BR>for i=0:s-1;<BR>b1=(ts*y/3600)^i/jiecheng(i);<BR>a=a+b1;<BR>end<BR>b=(ts*y)^s/jiecheng(s-1)/(3600*s-ts*y)*3600^(s-1);<BR>c=3600^(s-1)*jiecheng(s-1)*(3600*s-y*ts)^2;<BR>d=c*(a+b);<BR>e=(ts*y)^(s+1)/d;<BR>lq=e;<BR>%%%%%%%%%%%%%%%%<BR>function y2= jiecheng(n)%求n的阶乘<BR>p=1;<BR>for i=1:n<BR> p=p*i;<BR>end<BR>y2=p;<BR>运行结果应该是个位数或十位数的,可是得到的数却小得很,不对。<BR>原题是这样的:<BR><v:shapetype> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><lock aspectratio="t" v:ext="edit"></lock></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape> <P><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><lock aspectratio="t" v:ext="edit">想通过公式计算s的,已知lq.可是公式正好相反,不知该怎么改过来。<BR><BR><BR></lock></v:shapetype></P>
回复:(云雨)想通过公式计算s的,已知lq.可是公式正...
<DIV class=quote><B>以下是引用<I>云雨</I>在2006-1-11 22:26:31的发言:</B><br><P><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path extrusionok="f" gradientshapeok="t" connecttype="rect"></v:path><LOCK v:ext="edit" aspectratio="t">想通过公式计算s的,已知lq.可是公式正好相反,不知该怎么改过来。<br><br><br></LOCK></v:shapetype></P></DIV>
<P>没看到公式,建议自己对一下你的程序看是否和公式有偏差</P><br>这种工作还是自己作比较好
[此贴子已经被作者于2006-1-12 15:39:11编辑过]
页:
[1]