用Matlab求一道数值分析的题
求方程x=e^(-x)在x=0.5附近的根,精确到10^(-8)。(1)取y(x)=e^(-x),用简单迭代法x(n+1)=y[x(n)]计算。(2)用加快收敛的迭代格式...
求方程x=e^(-x)在x=0.5附近的根,精确到10^(-8)。
(1)取y(x)=e^(-x),用简单迭代法 x(n+1)=y[x(n)]计算。
(2)用加快收敛的迭代格式 x(n+1)=a*y[x(n)]+(1-a)*x(n) , a=0.625计算 展开
(1)取y(x)=e^(-x),用简单迭代法 x(n+1)=y[x(n)]计算。
(2)用加快收敛的迭代格式 x(n+1)=a*y[x(n)]+(1-a)*x(n) , a=0.625计算 展开
2个回答
展开全部
%(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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//这个函数就是计算泊松分布的概率密度公式的,我采用该算法的伪码的方式,希望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
你有所帮助!
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询