matlab无限递归怎么解决,出现无限递归的错误,请大神指教!

function main

clc; clear all; close all;

N=20;

k=0;

Pi1=[0;0.318757112730057;0.213298358723121;0.142153563503059;0.0834036754403426;0.0478257345954396;0.0270339589939721;0.0151400172456431;0.00845486908021234;0.00467820500152320;0.00258209730449347;0.00142230585761635;0.000782154535688881;0.000429523417716290;0.000235594767478955;0.000129092241742530;7.06720590175056e-05;3.86594249422924e-05;2.11330394453352e-05;1.15451622357423e-05;6.30372380330690e-06;3.44014615058444e-06;1.87654692109411e-06;1.02320420506109e-06;5.57700269968980e-07;3.03870447486477e-07;1.65514859822981e-07;9.01274183424514e-08;4.90634001263182e-08;2.67022275422694e-08;1.45289423684672e-08;7.90358168523524e-09;4.29856462521843e-09;2.33742728864112e-09;1.27078758315683e-09;6.90768691704174e-10;3.75423447956114e-10;2.04006072980306e-10;1.10841227775878e-10;6.02142646666072e-11;3.27069706546436e-11;1.77634350206324e-11;9.64632512844664e-12;5.23778401619916e-12;2.84371643188436e-12;1.54376116732191e-12;8.37974943939880e-13;4.54821405204166e-13;2.46837664624152e-13;1.33950473967085e-13;7.26843476240200e-14;3.94369017465178e-14;2.13959354621392e-14;1.16072046510403e-14;6.29641111719542e-15;3.41529891596401e-15;1.85240372255083e-15;1.00465018394328e-15;5.44837953476417e-16;2.95456816368876e-16;1.60212249730676e-16;8.68706944137495e-17];

h=0.8;

D_eo=7;

D_p=8;

D_f=10;

x_max=50;

pro=P_U_test(N,k,Pi1,h,D_eo,D_p,D_f,x_max)

function pro=P_U_test(N,k,Pi1,h,D_eo,D_p,D_f,x_max)

%%%***测试参数**********

%N=2;

%k=0;

%Pi1=[0;0.318757112730057;0.213298358723121;0.142153563503059;0.0834036754403426;0.0478257345954396;0.0270339589939721;0.0151400172456431;0.00845486908021234;0.00467820500152320;0.00258209730449347;0.00142230585761635;0.000782154535688881;0.000429523417716290;0.000235594767478955;0.000129092241742530;7.06720590175056e-05;3.86594249422924e-05;2.11330394453352e-05;1.15451622357423e-05;6.30372380330690e-06;3.44014615058444e-06;1.87654692109411e-06;1.02320420506109e-06;5.57700269968980e-07;3.03870447486477e-07;1.65514859822981e-07;9.01274183424514e-08;4.90634001263182e-08;2.67022275422694e-08;1.45289423684672e-08;7.90358168523524e-09;4.29856462521843e-09;2.33742728864112e-09;1.27078758315683e-09;6.90768691704174e-10;3.75423447956114e-10;2.04006072980306e-10;1.10841227775878e-10;6.02142646666072e-11;3.27069706546436e-11;1.77634350206324e-11;9.64632512844664e-12;5.23778401619916e-12;2.84371643188436e-12;1.54376116732191e-12;8.37974943939880e-13;4.54821405204166e-13;2.46837664624152e-13;1.33950473967085e-13;7.26843476240200e-14;3.94369017465178e-14;2.13959354621392e-14;1.16072046510403e-14;6.29641111719542e-15;3.41529891596401e-15;1.85240372255083e-15;1.00465018394328e-15;5.44837953476417e-16;2.95456816368876e-16;1.60212249730676e-16;8.68706944137495e-17];

%h=0.8;

%D_eo=7;

%D_p=8;

%D_f=10;

%x_max=50;

%%%***测试参数**********

if N==1

if k==0

pro=my_trapz(0,D_eo,Pi1,h);%%单部件系统没有维修需求的概率;

else

if k==1

pro=my_trapz(D_eo,D_p,Pi1,h);%%单部件系统被外部机会维修的概率

end

end

else

if k==0

pro=P_U_test(N-1,0,Pi1,h,D_eo,D_p,D_f,x_max)*...%

P_U_test(1,0,Pi1,h,D_eo,D_p,D_f,x_max);

else

if k==N

pro=P_U_test(N-1,N-1,Pi1,h,D_eo,D_p,D_f,x_max)*...%

P_U_test(1,1,Pi1,h,D_eo,D_p,D_f,x_max);

else %% P_N_Uk (0

%             if k>0 & k

pro=P_U_test(N-1,k,Pi1,h,D_eo,D_p,D_f,x_max)*...%%

P_U_test(1,0,Pi1,h,D_eo,D_p,D_f,x_max)+...

P_U_test(N-1,k-1,Pi1,h,D_eo,D_p,D_f,x_max)*...

P_U_test(1,1,Pi1,h,D_eo,D_p,D_f,x_max);

end

end

end

function p=my_trapz(a,b,Pi1,h)%%

a=ceil((a+h)./h);%%

b=floor(b./h);%%;

p=0;

for i=a:b

p=p+Pi1(i);%%

end

p=p*h;%%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB 显示内存不足时,这可能是因为你的计算机内存不足以处理当前的操作或数据。这种情况下,你可以尝试以下几种方法来解决问题: 1. 释放内存:关闭一些不必要的程序和进程,释放计算机上的内存资源。可以通过任务管理器或活动监视器来查看正在运行的程序和它们使用的内存。 2. 增加虚拟内存:你可以尝试增加计算机的虚拟内存大小。虚拟内存是一种计算机硬盘空间的扩展,用于暂时存储内存中无法容纳的数据。你可以在操作系统设置中调整虚拟内存大小。 3. 优化代码:检查你的 MATLAB 代码,看是否有可以优化的地方。避免使用不必要的大型矩阵或数组,使用循环而不是归等。你可以尝试使用更高效的算法或数据结构来减小内存占用。 4. 分批处理数据:如果你处理的数据量很大,可以考虑将数据分成小批量处理,以减少内存占用。这意味着你需要将操作分成多个步骤,并逐步处理数据。 5. 使用稀疏矩阵:如果你使用的是大型矩阵,且其中大部分元素为零,可以考虑使用稀疏矩阵来节省内存。稀疏矩阵只存储非零元素,可以显著减少内存使用量。 6. 增加物理内存:如果你经常遇到内存不足的问题,可以考虑增加计算机的物理内存。这意味着升级计算机的内存条。 注意:以上方法可能需要根据你的具体情况进行调整和实施。如果问题仍然存在,建议查阅 MATLAB 文档或向 MATLAB 的技术支持寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值