matlab阶乘和程序

matlab阶乘和程序,第1张

matlab程序为:

function jiechenghe=fun(x)

jiechenghe=0

s=1

for i=1:x

s=s*i

jiechenghe=jiechenghe+s

end

应用:求n!的位数

可以将n!表示成10的次幂,即n!=10^M(10的M次方)则不小于M的最小整数就是 n!的位数,对该式两边取对数,有 M =log10^n!

即:M = log10^1+log10^2+log10^3...+log10^n。循环求和,就能算得M值,该M是n!的精确位数。

扩展资料:

对于复数应该是指所有模n小于或等于│n│的同余数之积,对于任意实数n的规范表达式为:正数 n=m+x,m为其正数部,x为其小数部;负数n=-m-x,-m为其正数部,-x为其小数部。

在 Common Lisp 中, 可以很方便的使用更为简洁的使用递归实现阶乘:

(defun factorial (n)

(cond

((> n 0) (* (factorial (- n 1)) n))

((= n 0) 1)

(t (error "N is smaller than 0."))))

参考资料来源:百度百科-n!

在m-file

edit中:

function

subfun(a,b)

x=a:0.01:b

%a,b为你所要的自变量取值范围

y=(x.^3+5*x-10)/6.*(x+5<0)+exp(x-1).*(-5<=x<5)+log(7*x+4).*(x>=5)

plot(x,y)

保存后,在command

window下输入

subfun(-10,10)就可以了……

分段函数都可以引入一个向量,自变量在某个范围内为1,否则为0,上述代码中的(x+5<0),(-5<=x<5),和(x>=5)就是了……

还要注意的是用".*",而不是"*"

Simulink的命令行仿真方式:

[t,x,y]=sim('modelname')

利用对话框参数进行仿真,返回输出矩阵;

[t,x,y]=sim('modelname', timespan, options, ut)

利用输入参数进行仿真,返回输出矩阵;

[t,x,y1,y2,...yn]=sim('modelname', timespan, options, ut)

利用输入参数进行仿真,返回逐个输出;

参数说明:

'modelname' 运行的模型名(不包含扩展名),必须在Matlab的搜索路径上。

timespan 指定仿真的时间区间,可以采取以下几种格式:

(1)[] 空,利用模型对话框设置时间;

(2)T_final 标量,制定终止仿真时间;

(3)[T_start T_final] 二元向量,指定仿真时间区间;

(4)outputTimes 任何指定输出时间记录点的向量。

options MATLAB特定的一种数据结构,具有最高优先权,可以覆盖模型参数对话框中的设置。

ut 赋给仿真对象数入口模块的量,具有最高优先设置,它是形为[t,u1,u2...]的数值矩阵,每个为时间序列或输入序列。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11579769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存