楼主: Oranstestudysas
268 1

[程序分享] 1、如何用matlab求解涉及求和函数求解问题?(隐含复合利率为题) [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
393 个
通用积分
4.2351
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
93 点
帖子
3
精华
0
在线时间
7 小时
注册时间
2023-10-14
最后登录
2024-3-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
题目:设债券面值为100元,年息票5元,10年到期,如果该债券按面值交易,其隐含连续复合利率是多少?
解答:
5*(exp(1)^(-1*k) + exp(1)^(-2*k) + exp(1)^(-3*k) + exp(1)^(-4*k) + exp(1)^(-5*k) + exp(1)^(-6*k) + exp(1)^(-7*k) + exp(1)^(-8*k) + exp(1)^(-9*k)) + 105*exp(1)^(-10*k) == 100
求解k。


遇到问题:想用matlab求解方程
代码:
%求和函数
syms  k;
eqn=5*(exp(1)^(-1*k)+exp(1)^(-2*k)+exp(1)^(-3*k)+exp(1)^(-4*k) ...
    +exp(1)^(-5*k)+exp(1)^(-6*k)+exp(1)^(-7*k)+exp(1)^(-8*k)+exp(1)^(-9*k))+105*exp(1)^(-10*k)==100;
sol=solve(eqn,k)
%%
syms k;  
eqn = 5*(exp(1)^(-1*k) + exp(1)^(-2*k) + exp(1)^(-3*k) + exp(1)^(-4*k) ...  
    + exp(1)^(-5*k) + exp(1)^(-6*k) + exp(1)^(-7*k) + exp(1)^(-8*k) + exp(1)^(-9*k)) + 105*exp(1)^(-10*k) == 100;  
sol = solve(eqn, k);  
real_sol = real(sol)
结果:
real_sol =

log(((5^(1/2)/4 + 1/4)^2 - 5^(1/2)/8 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log(((5^(1/2)/4 + 1/4)^2 - 5^(1/2)/8 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log(((5^(1/2)/4 + 1/4)^2 - 5^(1/2)/8 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log(((5^(1/2)/4 + 1/4)^2 - 5^(1/2)/8 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
                                                                                        0
log((5^(1/2)/8 + (5^(1/2)/4 - 1/4)^2 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log((5^(1/2)/8 + (5^(1/2)/4 - 1/4)^2 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log((5^(1/2)/8 + (5^(1/2)/4 - 1/4)^2 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
log((5^(1/2)/8 + (5^(1/2)/4 - 1/4)^2 + 5/8)^(1/2))/log(6121026514868073/2251799813685248)
                                        log(21/20)/log(6121026514868073/2251799813685248)


二维码

扫码加我 拉你入群

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

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

关键词:MATLAB atlab matla 函数求解 如何用

沙发
att006 发表于 2024-2-14 06:29:53 |只看作者 |坛友微信交流群
代码已用了 MATLAB 求解方程,但是结果显示的是解的形式表达式,不是数值。可能因为你的方程是一个复杂的非线性方程,无法直接求得解析解,MATLAB返回的是表达式形式的解。如果想要获得数值解,可用 double 函数将表达式转换为数值形式。
matlab的代码:real_sol = double(real(sol));
这样把 real(sol) 中的表达式转换为数值形式,并存储在 real_sol 变量中。然后,可通过查看 real_sol 获得数值解。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-14 18:10