Meetbug_ 2023-02-06 01:07 采纳率: 20%
浏览 106
已结题

使用matlab进行含参数的最优化求解及数值模拟

问题背景
效用最大化理论模型,非线性有约束规划,函数中有多个参数(如图),初步的想法是

第一步:得出最优消费量关于某一变量的偏导;
第二步:将偏导在某一参数的不同水平下进行数值模拟

img

碰到的问题

手动计算最优消费量易出错(不确定是否求出了正确的解),下面的数值模拟自然不好推进,所以想用matlab的最优化工具箱计算得出最优消费量,但是遇到了报错,无法实现

目前尝试的代码

参考matlab帮助文档中跟我这个相似的最优化问题,目前是这个代码(没有matlab格式的代码可插入,用了python的代码格式,见谅哈),目的是将f这一g的隐函数作图,这里4个变量t, c, c1, c0,其他的都是参数

%%%%
clc; clear all; close all;
f = @(t, c, c1, c0) (a.*t.^p + b.*(h0-m.*c+n.*(k1.*c+k2.*c1+(1-k1-k2).*c0)).^p)^(1/p);
g = @(t,c, c1, c0) t+p1.*n.*(k1.*c+k2.*c1+(1-k1-k2))+ 0*(h0-m.*c+n.*(k1.*c+k2.*c1+(1-k1-k2).*c0)>=h1)+p2.*(h0-m.*c+n.*(k1.*c+k2.*c1+(1-k1-k2).*c0)<h1)-i;
fimplicit(g)

报错情况

“错误使用 fimplicit (line 54) 函数输入可以最多包含两个变量。”

我目前的疑问

当然上面这个报错是预想中的啦,关键的问题是不知道这样一个全是参数的最优化问题是否可以用matlab求出一个解的表达式再数值模拟还是说直接用这一系列关系式直接进行数值模拟

可否指教一二?
  • 写回答

4条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-06 09:17
    关注
    
    % 定义函数maxtU
    maxtU = @(t, h, alpha, beta, p) (alpha * t^p + beta * h^p)^(1/p);
    
    % 定义函数h
    h = @(c, cs, delta, delta1, h0, m, n) h0 - m * c + n * cs;
    
    % 定义函数cs
    cs = @(c, c0, delta, delta1) delta * c + delta1 * c1 + (1 - delta - delta1) * c0;
    
    % 定义函数M
    M = @(h, h_i, p2) h_i >= h ? 0 : p2 * (h - h_i) * h_i;
    
    % 定义目标函数
    obj = @(x) maxtU(x(1), x(2), alpha, beta, p);
    
    % 定义约束条件
    A = [];
    b = [];
    Aeq = [];
    beq = [];
    lb = [0, 0];
    ub = [Inf, Inf];
    nonlcon = @(x) x(1) + p1 * cs(x(2), c0, delta, delta1) + M(h(x(2), cs(x(2), delta, delta1), delta, delta1, h0, m, n), h_i, p2) - I;
    
    % 求解最优化问题
    x0 = [1, 1]; % 初始值
    options = optimoptions(@fmincon,'Algorithm','interior-point');
    x = fmincon(obj,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
    
    % 数值模拟
    num_iterations = 100; % 迭代次数
    for i = 1:num_iterations
    % 在每次迭代中调用上述函数并计算结果
    x = fmincon(obj,x,A,b,Aeq,beq,lb,ub,nonlcon,options);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 修改了问题 2月6日
  • 创建了问题 2月6日

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题