查看: 347|回复: 14|关注: 0

[已解决] 我想把最后一行算出来a1的值带入第一行的a中重复计算15次,怎么实现

[复制链接]

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
a=[1;1]';
x1=-13:0.1:13;
y1=(0.5*x1.^2+[a*[1;5]]*x1);
[y1min,x1min]=min(y1);
a=[1;1]';
x2=-13:0.1:13;
y2=(0.1*x2.^2+[a*[-0.2;1]]*x2);
[y2min,x2min]=min(y2);
g=[1;5]*y1min+[-0.2;1]*y2min-[48;250];
n=norm(g,1);
p=(2*(1400-((y1min+y2min)-[48;250]'*a')))/n.^2
s=0+p*rand(1,1)
a1=a'+s*p
我想把最后一行算出来a1的值带入第一行的a中重复计算15次,怎么实现

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1638

帖子

347

最佳答案
  • 关注者: 81
发表于 2020-8-4 16:00:50 | 显示全部楼层
仅供参考

  1. a0=[1;1];
  2. i=1;
  3. while i<16
  4. a=a0';
  5. x1=-13:0.1:13;
  6. y1=(0.5*x1.^2+[a*[1;5]]*x1);
  7. [y1min,x1min]=min(y1);

  8. x2=-13:0.1:13;
  9. y2=(0.1*x2.^2+[a*[-0.2;1]]*x2);
  10. [y2min,x2min]=min(y2);
  11. g=[1;5]*y1min+[-0.2;1]*y2min-[48;250];
  12. n=norm(g,1);
  13. p=(2*(1400-((y1min+y2min)-[48;250]'*a')))/n.^2;
  14. s=0+p*rand(1,1);
  15. a0=a'+s*p;
  16. as(i,:)=a0;
  17. i=i+1;
  18. end
复制代码
回复此楼 已获打赏: 2 积分

举报

入门

180 麦片

财富积分


50500


10

主题

92

帖子

5

最佳答案
  • 关注者: 5
发表于 2020-8-4 16:21:59 | 显示全部楼层 |此回复为最佳答案
试试用这个e
  1.   a = [1;1]';
  2.   i = 0;
  3. while i < 15
  4.   a = calc(a);
  5.   i = i+1;
  6.   sprintf('i = %d\n',i)
  7.   disp(a);
  8. end
  9.   
  10. function retVal = calc(a)
  11.         At = a';
  12.   x1=-13:0.1:13;
  13.   y1=(0.5*x1.^2+[a*[1;5]]*x1);
  14.   [y1min,x1min]=min(y1);
  15.   x2=-13:0.1:13;
  16.   y2=(0.1*x2.^2+[a*[-0.2;1]]*x2);
  17.   [y2min,x2min]=min(y2);
  18.   g=[1;5]*y1min+[-0.2;1]*y2min-[48;250];
  19.   n=norm(g,1);
  20.   p=(2*(1400-((y1min+y2min)-[48;250]'*At)))/n.^2;
  21.   s=0+p*rand(1,1);
  22.   retVal = (At+s*p)';
  23. end
复制代码

回复此楼 已获打赏: 2 积分

举报

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
 楼主| 发表于 2020-8-4 17:48:51 | 显示全部楼层

哇,好使了,太谢谢了,我再查查代码是啥意思
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
 楼主| 发表于 2020-8-4 17:51:14 | 显示全部楼层

太谢谢了,到处查也学不会,看着代码学感觉很清楚,感谢回复
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
 楼主| 发表于 2020-8-4 18:27:00 | 显示全部楼层

有一个问题,运行完代码是空白,是我运行错了吗
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
 楼主| 发表于 2020-8-4 18:31:14 | 显示全部楼层

如果想把每一步迭代的值画成迭代图可以画出来吗,可以的话怎么取点呢
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1638

帖子

347

最佳答案
  • 关注者: 81
发表于 2020-8-4 18:51:38 | 显示全部楼层
阿拉丁_mgIi5 发表于 2020-8-4 18:27
有一个问题,运行完代码是空白,是我运行错了吗

没有设置输出命令,变量请到workspace工作空间处查看
回复此楼 已获打赏: 2 积分

举报

入门

180 麦片

财富积分


50500


10

主题

92

帖子

5

最佳答案
  • 关注者: 5
发表于 2020-8-5 09:36:13 | 显示全部楼层
阿拉丁_mgIi5 发表于 2020-8-4 18:31
如果想把每一步迭代的值画成迭代图可以画出来吗,可以的话怎么取点呢

你可以把每次计算的结果以数组形式存在某个变量里,可以实时绘图,也可迭代完成后绘图。复用的函数可以单独定义function文件,这样整个脚本会很清晰
回复此楼 已获打赏: 2 积分

举报

新手

32 麦片

财富积分


050


1

主题

10

帖子

0

最佳答案
 楼主| 发表于 2020-8-5 09:46:03 | 显示全部楼层
20141303 发表于 2020-8-4 18:51
没有设置输出命令,变量请到workspace工作空间处查看

明白了,谢谢
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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