楼主: zhangtao
2491 9

[问答] matlab联立方程求助,在附件中,非常感谢! [推广有奖]

  • 3关注
  • 42粉丝

已卖:431份资源

学科带头人

41%

还不是VIP/贵宾

-

威望
0
论坛币
2302 个
通用积分
908.3324
学术水平
114 点
热心指数
120 点
信用等级
83 点
经验
52009 点
帖子
1552
精华
1
在线时间
2357 小时
注册时间
2005-1-13
最后登录
2024-5-21

楼主
zhangtao 发表于 2011-3-15 19:15:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
matlab联立方程求助,在附件中,非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB matla atlab 非常感谢 联立方程 求助 MATLAB 方程 附件 感谢

沙发
zhangtao 发表于 2011-3-15 21:28:52
自己顶一下

藤椅
qibbxxt 发表于 2011-3-22 14:12:27
  1. clear;clc;close all
  2. x = 10000; % 债务的市场价值
  3. r = 0.05; % 无风险利率
  4. T = 1; % 债务的到期时间
  5. ve = 3000; % 股权的市场价值
  6. se = 0.4; % 股权价值波动率
  7. d1 = @(v)(log(v(1)/x)+(r+v(2).^2/2).*T)./(v(2).*sqrt(T));
  8. d2 = @(v)d1(v)-v(2).*sqrt(T);
  9. f = @(v)[v.*normpdf(d1(v)) + exp(-r.*T).*x.*normpdf(d2(v))-ve;
  10. v./ve.*normpdf(d1(v)).*v(2) - se];
  11. vs = fsolve(f,rand(1,2))
复制代码

t没有赋值,我用大T代替了

  1. vs =
  2.     0.7431    0.3922
复制代码

板凳
zhangtao 发表于 2011-3-26 09:22:02
clear;clc;close all
x = 10000; % 债务的市场价值
r = 0.05; % 无风险利率
T = 1; % 债务的到期时间
ve = 3000; % 股权的市场价值
se = 0.4; % 股权价值波动率
d1 = @(v)(log(v(1)/x)+(r+v(2).^2/2).*T)./(v(2).*sqrt(T));
d2 = @(v)d1(v)-v(2).*sqrt(T);
f = @(v)[v.*normpdf(d1(v)) + exp(-r.*T).*x.*normpdf(d2(v))-ve;
v./ve.*normpdf(d1(v)).*v(2) - se];
b=[3800,0.6] ;
vs = fsolve(f,b)

vs =

  1.0e+003 *

    3.7872    0.0006

谢谢3楼的朋友,我还想再问一个问题,
您看一下,我改变初值后的结果对吗?

报纸
dingd 发表于 2011-3-26 18:24:28
用1stOpt试试:
  1. Constant x = 10000, //债务的市场价值
  2.          r = 0.05, //无风险利率
  3.          T = 1, //债务的到期时间
  4.          ve = 3000, //股权的市场价值
  5.          se = 0.4; //股权价值波动率
  6. ConstStr d1 = (ln(v1/x)+(r+v2^2/2)*T)/(v2*sqrt(T)),
  7.          d2 = d1-v2*sqrt(T);
  8. Function v1*NormalPDF(d1) + exp(-r*T)*x*NormalPDF(d2)-ve;
  9.          v1/ve*NormalPDF(d1)*v2 - se;
复制代码
不需要初值,结果:
v1: 4404.37259339534
v2: 0.8

地板
zhangtao 发表于 2011-3-26 21:02:02
标准答案确实是4404.37和0.8,那4楼的程序错在什么地方?
非常感谢!

7
jyliao 发表于 2011-3-27 20:28:48
TRY:
[x, fval] = pingtt3([2000, 0.5])

%==========================================
function [x,fval,exitflag,output,lambda,grad,hessian] = pingtt3(x0)
% [x,fval] = pingtt3([2000, 0.5])
% Start with the default options
options = optimset;
% Modify options setting
options = optimset(options,'Display', 'off');
options = optimset(options,'Algorithm', 'interior-point');
[x,fval,exitflag,output,lambda,grad,hessian] = ...
fmincon(@obj,x0,[],[],[],[],[],[],@cons,options);
%-------------------------------------------------
function [c,ceq] = cons(v)
% Compute nonlinear inequalities at x.
x = 10000; %
r = 0.05; %
T = 1; %
ve = 3000; %
se = 0.4; %
d1 = (log(v(1)/x) + (r+v(2)^2/2)*T)/(v(2)*sqrt(T));
c = [];
ceq = v(1)/ve*normpdf(d1)*v(2) - se;
%=======================
function f2 = obj(v)
va = v(1);
sa = v(2);
X = 10000; %
r = 0.05; %
T = 1; %
ve = 3000; %
se = 0.4; %
d2 = (log(va/X) + (r - sa^2/2)*T)/(sa*sqrt(T));
Nd2 = normpdf(d2);
f2 =  (sa*exp(-r*T)*X*Nd2/(sa-se) - ve).^2;

8
jyliao 发表于 2011-3-27 20:29:52
save the followed functions as a file, name= "pingtt3.m"

9
zhangtao 发表于 2011-4-1 16:27:09
7楼的朋友,能不能把您写好的程序以m文件压缩成rar or zip文件发上来,
你在7楼的文字有些看不清楚,非常感谢!

10
jyliao 发表于 2011-4-2 09:37:54
Run
[x, fval] = pingtt3([2000, 0.5])

pingtt3.rar

517 Bytes

本附件包括:

  • pingtt3.m

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

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