查看: 94|回复: 1|关注: 0

[已答复] 随机数函数问题求解

[复制链接]

新手

5 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 5 天前 | 显示全部楼层 |阅读模式
本帖最后由 kprincey 于 2020-2-15 22:05 编辑

各位大神:请教一个问题
现已建立4个 函数 m 文件: 我的算法目的是通过迭代得到一个点列 x_0,  x_1,  x_2,........,在迭代过程中,每一次迭代需要随机用到 4个函数中的一个,请帮忙解答一下。在我的主程序里面,如何去调用这4个函数呢。。。求解 ,谢谢
4个函数的名字为Project1Ck,Project2Ck,Project3Ck,Project4Ck.  

下面是主程序中的部分内容:其中红色的函数应该是 每次迭代过程中,从已知的4个函数中随机选择的一个。
while gap> eps &&   iter<maxiter;
   % compute yk =   P_{Ck}(x_k - betak*f(x_k))
   t1  = x_old -betak* f(x_old);
   yk = Project4Ck(t1,x_old);  
   
    % % % %   compute x(k+1)=P_{C_k}(yk-betak*(f(yk)-f(x_old)))
   
   t2 =yk-betak*(f(yk)-f(x_old));
   
   zk = Project4Ck(t2,x_old);
    % % % %  % % % % % % % % % % % % % % % % % % % % % % % % % % % %
    x_new =zk;
    % stop rule
    gap=norm(x_new);
    betak=1/(betak+1);
    iter = iter +1;

论坛优秀回答者

5

主题

1753

帖子

495

最佳答案
  • 关注者: 149
发表于 4 天前 | 显示全部楼层
根据这些函数被调用几率,加个随机数,每一步都根据随机数落在cumulative distribution function的哪个区间来选择调用哪个计算函数
比如,四个计算函数几率相同,那就设置均匀随机数mp = rand,判断mp的大小,在[ 0, 1/4 )区间就调用第一个函数,其余类推,这个部分用if写就行(或者用randi生成随机整数,然后用switch引导到不同的计算函数)
提问请:①准确描述问题②贴代码别贴代码的截图③勿一问多帖或一帖多问④及时反馈⑤看清回复的每个字
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表