第1个回答 2006-12-09
%(1)取y(x)=e^(-x),用简单迭代法 x(n+1)=y[x(n)]计算。
clc;clear
err=1;
k=1;
y=0.5;
format long
while abs(err)>10e-8
y=exp(-y);
err=y-exp(-y);
k=k+1;
end
k
y
err
%(2)用加快收敛的迭代格式 x(n+1)=a*y[x(n)]+(1-a)*x(n) , a=0.625计算
a=0.625;
err1=1;kk=1;yy=0.5;
while abs(err1)>10e-8
%for kk=1:10
yy=exp(-yy);
yy1=a*yy+(1-a)*exp(-yy);%x(n+1)=a*y[x(n)]+(1-a)*x(n)
err1=yy1-yy;
kk=kk+1;
end
kk
yy
err1
运行结果:
k = 26
y = 0.56714333810549
err = 7.474599861279074e-008
kk = 24
yy = 0.56714343869357
err1 = -8.714322441427669e-008
精确解:
>> x=eval(solve('x=exp(-x)'))
x = 0.56714329040978本回答被提问者采纳
第2个回答 2011-05-12
//这个函数就是计算泊松分布的概率密度公式的,我采用该算法的伪码的方式,希望kutpbpb的回答能对
你有所帮助!
function [Px] = poisspdf(X,lambda) //poisspdf函数定义输入x,lambda 输出Px参数列表
warning 。。。。。关闭关于。。。的警告
if 泊松分布中的参数lambda小于0,
输出:参数错误,lambda应该大于0,程序结束。
end
if X的长度等于1,则x不是数组,则这个点处得概率密度
创建数组temp,长度为X,包含元素1—X;
Px = lambda 与 e的 -lambda/X的阶乘 次幂的乘积;
else X是数组,求数组中每个元素的概率密度
创建数组 temp_Px ,长度跟数组x相等,并且包含1到lenth(x);
for循环
i 从1 到 length(x)
创建temp数组,长度为i,并且元素为1到i;
temp_Px(i)等于 lambda 与 e的 -lambda/i的阶乘的次幂的乘积;
end
Px=temp_Px;
end