• 回答数

    2

  • 浏览数

    2687

  • 收藏数

    0

作者:易缕烊光 发表于 2018-11-20 10:30:02
跳转到指定楼层

给出一组值,其中y是从某一总体抽出的一组样本容量为n的随机数。如何求图片中的第二个方程的。自己的想法是利用fsolve函数来求出。具体做法:
  • Lambda=6;beta=8;%给出关于lamda和beta的初值;
  • u = rand(1,100);
  • y=sqrt(0.5*log(2)-0.5*log(log(exp(2)-(exp(2)-1).*u)));%从服从某一分布的总体中抽取容量为n=100样本,记为y.

[color=rgb(51, 102, 153) !important]复制代码



图片中的第二个方程为

  • function f=funRPL(Lambda,beta,y)
  • syms x;
  • n=length(y);
  • f=x-(1-exp(-x))*sum(1+lambda*exp(-beta*y.^2))/n;
  • end

[color=rgb(51, 102, 153) !important]复制代码

然后想用z=fsolve('funRPL',0.5),解出x即
但是运行报错:
  • >> z=fsolve('funRPL',0.5)
  • ??? Input argument "y" is undefined.
  • Error in ==> funRPL at 3
  • n=length(y);
  • Error in ==> fsolve at 180
  •         fuser = feval(funfcn{3},x,varargin{:});

[color=rgb(51, 102, 153) !important]复制代码

已经困扰很长时间,不知道为甚什么?

分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
22
极客币
75
主题
22
帖子
34
注册时间
2018-10-22
在线时间
2 小时
性别
保密
发表于 2018-11-20 10:30:30 | 显示全部楼层
系统不是已经提示了么,你没定义y
funRPL这个函数需要Lambda,beta,y三个参数做运算
所以得使用
a=funRPL(b,c,d)
这样的形式来调用它
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
24
极客币
81
主题
24
帖子
38
注册时间
2018-10-22
在线时间
2 小时
性别
保密
 楼主| 发表于 2018-11-20 10:30:40 | 显示全部楼层
好的   谢谢
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录
关于作者
易缕烊光

用户组:新手上路

  • 主题

    24

  • 帖子

    38

  • 关注者

    1