网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月11日漏签0天
mathcad吧 关注:5,456贴子:28,333
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 32回复贴,共2页
  • ,跳到 页  
<<返回mathcad吧
>0< 加载中...

求助循环获得最小值

  • 只看楼主
  • 收藏

  • 回复
  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
按照张老之前的指点,我将测试数据导入Mathcad,并取得了特定点处的插值,如下图:


然后对这些插值进行处理,构建目标函数M(i,j),如下图:

对应于i:=2,3...99,M(i,j)均有最小值,举例如下:

我现在的问题在于获得M(i,j)以后,需要对M(2,j),M(3,j),M(4,j)...M(99,j)求取对应的最小点处的j值,然后将该j值代入g(j)。最终目的是建立i和极值点处对应的j对应的g(j)的关系。我的感觉是需要结合循环和Minimize函数,但由于对Mathcad了解尚浅,不知道具体如何写,烦请各位指点迷津。
如果需要Mathcad文件请留邮箱,感谢各位!


  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
张老您好,遇到了新问题,烦请看一下!@100zpz


2026-11-11 17:46:18
广告
不感兴趣
开通SVIP免广告
  • 朱老剑客
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
都有函数了,直接求导取零不就可以了么?


  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你发到我的邮箱里的xmcd文件,所有原始数据表格都是空的。


  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
张老先生,您好,再次将xmcd文件及原始excel文件发到您的邮箱了,由于我的疏忽又耽误您的宝贵时间了,实在抱歉!我的数据点多,您要是觉得不方便的话可以用和我情况类似的例子用Mathcad写出流程,我迁移性学习然后用到我的问题上也可以的。这次的主要问题是获得M(i,j)函数以后,可以分别获得M(2,j),M(3,j)...M(99,j)但是当我输入‘M(i,j):=“时就会报错,输入”P(i):=M(i,j)“时也会报错。所以麻烦您给看一下,如何解决循环求取最小值。再次感谢老先生。


  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
非常感谢老先生的回复,晚生会认真研读,慢慢消化,努力迁移学习,增加对mathcad的进一步了解。多次麻烦老先生,每次都得到老先生的认真耐心细致回复,晚生实在由衷敬佩。


  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
老先生,您好,我先重复您给的例子,遇到了问题,您给看一下:
麻烦老先生看一下为什么输入“Jin=”没有得到示例中的矩阵,但是M(4,j)和M(6,j)和您给出的一样。@100zpz


  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果不进行后期配置,此程序的 jin 输出是“嵌套矩阵”,你只需要点选它,然后点击菜单,格式——结果——结果格式对话框——显示样式——在“矩阵显示样式”中选“矩阵”,在“展开嵌套矩阵”前打上对勾,然后,点击“确定”,OK。


2026-11-11 17:40:18
广告
不感兴趣
开通SVIP免广告
  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
老先生果然治学严谨,我构造的函数M(i,j)确实在i:=2,3..99时都有最小值,如下图,当i取值较小时,对应最小值处的j值会比较大,当i取值大于8,对应最小值处的j值就在100左右了。多次占用老先生宝贵时间和精力,晚生只好多加努力,力求上进。@100zpz



  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
忘了回答你的《问题一》,这个问题认真啃一下帮助文件就能自己解决的。
现给你的解决方法如下:
设置mathcad的收敛公差为较小的值,比如本题,设置 TOL:= 10 的负8次方就足够了。你只要在编程板程序之上位置,键入 TOL:=0.000000001 ,执行min(Z)时,就能区分相差百万分之一的相近数了。


  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你昨天的求助夹在了全部帖子中间,很像一个过期帖子。太容易被人忽略。老朽也是今天上午才发现。现在给你贡献一个老朽自己编的“自定义函数”,所有陈述语句的功能,都做了对应说明,(但没有做用法说明),希望你能把他看懂,当然,根本不去看懂他,也可以使用在你的问题中。

要把嵌套矩阵的数据取出来使用,首先就是解除嵌套,解除嵌套之后,就可以按常规去用到excel中去了。


  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
张老先生,您好,在您举的例子,如下:
在最后得出的结果Jin中,结合您关于嵌套矩阵解除嵌套的回复,我的理解如下:在Jin中,首先是列并列嵌套矩阵,然后首列里面包含行重叠嵌套矩阵,可以将Jin的两列数据分离,如下:

按照您提供的自定义函数,然后就是对A中的行重叠嵌套矩阵解除嵌套,对B中的列并列嵌套矩阵解除嵌套。理解如上以后尝试着试一下,在编colsmat(N)的时候不能完全和您的一样,我翻阅了您的著作,if的两边应该都有占位符,otherwise的左边也有占位符,而您的回复中if和otherwise的左边没有占位符,并且for语句在竖线的右边,我的输入如下,没有找到明显的原因进行修改:

在您的著作里面也看到了类似的书写,请张老不辞辛劳麻烦看一下。如果觉得解释起来繁琐,可将xmcd文件发到zhaobaodong2006@163.com,留待我自己琢磨。多谢!
@100zpz


  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你最后这个问题,不是人为的,当你使用条件分支语句 if时,其左边的占位符中,如果只有一行语句,这一句就占据左边位置,如果多于一行,mathcad将自动把所有语句移到下一行中,起作用和在左边一样。
otherwise 语句也一样。
这个问题,你只消稍稍摸索几分钟,就会弄清规律的。


  • 100zpz
  • 主顾
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以 if 语句为例直观一点说吧。
假如你指定当if右边的条件满足时,在左边输出
x←0
y←1 这样两行。
当你打完 x←0 这一行,它还规规矩矩地呆在 if 左边,可是为了增加下一行,你得点击“增加一行”按钮,左键一点, if 整个左边(包含x←0 这一行)就自动移到 if
下面了。


2026-11-11 17:34:18
广告
不感兴趣
开通SVIP免广告
  • Gibbs_Z
  • 爷们儿
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
按照您回复中的描述,我试出来了,把举的例子中的问题的结果也列出来:

因为A中既包含列并列,又包含行重叠,所以需要两次使用colsmat函数,而B只包含列并列,所以一次就可以了,再构建矩阵C,就可以使得结果Jin输出到Excel中。
mathcad中输出结果:

导入Excel后结果:


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 32回复贴,共2页
  • ,跳到 页  
<<返回mathcad吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示