楼主: momo67799
6412 11

[问答] 用matlab怎么解带有分布函数的方程 [推广有奖]

  • 2关注
  • 0粉丝

等待验证会员

初中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
396 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
107 点
帖子
12
精华
0
在线时间
23 小时
注册时间
2012-3-3
最后登录
2019-9-26

楼主
momo67799 在职认证  发表于 2012-4-7 10:45:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
360截图20120407104018984.jpg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB atlab matla 分布函数 Lab 分布函数 matlab

沙发
mj2012 发表于 2012-4-7 10:52:15
用同样的思路,求一个优化函数,任意优化一变量即可。

藤椅
momo67799 在职认证  发表于 2012-4-7 11:02:40
mj2012 发表于 2012-4-7 10:52
用同样的思路,求一个优化函数,任意优化一变量即可。
谢谢关注我的帖子!但是我没怎么接触过matlab,能否稍微详细说一下呢?或者麻烦告诉我用到什么知识,我赶紧查工具书,谢谢

板凳
mj2012 发表于 2012-4-7 11:25:19
不用这么复杂,fsolve可求解:
先写一个如下的函数,存在当前目录下:
function r=myfunction(x)
mu=400;
sigma=112;
r= -40*normcdf(x,mu,sigma)+20*(normcdf(x+150,mu,sigma)-normcdf(x,mu,sigma))+45*(1-normcdf(x+150,mu,sigma));
end

然后在命令行下:
x=fsolve(@myfunction,300)

求出来是369.5531

报纸
mj2012 发表于 2012-4-7 11:56:59
用fmincon优化,除了上述自定义函数外,再定义一个如下函数:
function [c,ceq] = mycon(x)
c=[];
ceq=myfunction(x);
end
在命令行:
options=optimset('Algorithm','active-set');
x = fmincon(@myfunction,300,[],[],[],[],[],[],@mycon,options)
结果一样。

地板
momo67799 在职认证  发表于 2012-4-8 17:41:50
mj2012 发表于 2012-4-7 11:56
用fmincon优化,除了上述自定义函数外,再定义一个如下函数:
function [c,ceq] = mycon(x)
c=[];
非常非常感谢您的解答!!!我运行过了,得出了正确结果。还想问您一个问题:如果扩展到二维随机变量的分布函数,就有两个未知数x1、x2,两个正态分布函数(假设相互独立),我相应可以得到两个方程。这种情况下,p=normcdf()这个函数是不是就不可以使用了?如果用二重积分,按照您给的第一种方法,可以写出类似的算法并得出结果吗?谢谢!

7
mj2012 发表于 2012-4-8 19:53:02
momo67799 发表于 2012-4-8 17:41
非常非常感谢您的解答!!!我运行过了,得出了正确结果。还想问您一个问题:如果扩展到二维随机变量的分 ...
扩展到二维以后,如果变量之间互相独立,normcdf可以用,看matlab帮助,normcdf允许输入向量或矩阵。
按第一种方法求解,如果用二重积分,只要能写在一个函数中,应该也是可以的。

8
momo67799 在职认证  发表于 2012-4-9 14:51:44
mj2012 发表于 2012-4-8 19:53
扩展到二维以后,如果变量之间互相独立,normcdf可以用,看matlab帮助,normcdf允许输入向量或矩阵。
按 ...
1.jpg
2.jpg
3.jpg
4.jpg

4.jpg (21.16 KB)

4.jpg

9
mj2012 发表于 2012-4-9 18:25:24
你只需要把syms变量抛开,这是你最主要的障碍。在自定义函数中,你将自定义函数写成如下形式:

r=-40*mvncdf([x(1) x(2)],mu,sigma)+45*(1-mvncdf([x(1)+150    x(2)],mu,sigma)+…..

我没有注意到有mvncdf函数,有了它,连独立性假设都不要了。
只需按我前面所提供的例子写自定义函数就行了,无论采用哪种方法。注意自定义函数返回一个标量数值就行

10
momo67799 在职认证  发表于 2012-4-11 09:41:39
mj2012 发表于 2012-4-9 18:25
你只需要把syms变量抛开,这是你最主要的障碍。在自定义函数中,你将自定义函数写成如下形式:

r=-40*mv ...
tu.jpg
1234.jpg

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-1 18:22