24小时热门版块排行榜    

查看: 2684  |  回复: 10

tianaylk

新虫 (初入文坛)

[求助] matlab 积分计算 算不出结果,求帮助!!!

q =1.0e+008  *[2.3916; -3.6135; 1.8065; -0.6109];
syms y ;
F2=int(exp(q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3)),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)
可以计算出F4 = 149272173.68701522388239715123227,但是当q =1.0e+009  *[2.3916; -3.6135; 1.8065; -0.6109] 时,运算不出结果,其实结果大概为149272173*10,怀疑是不是因为F2数值太大,matlab处理不了?q的取值为1.0e+008数量级时F2=2*10^64828081,q的取值为1.0e+009数量级时F2就计算不出来了,提示 numeric::int(1/exp(152725000*y^4 - (5051340117333333*y^3)/8388608 + 890400000*y^2 - (4908174540800001*y)/8388608 - 1348575000), y = 9/10..11/10) 但其实取对数以后得到的F3并不大,请各位大侠帮忙解决一下~~~非常感激~~~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢应助 2012-03-23 02:57:02
q =1.0e+009  *[2.3916; -3.6135; 1.8065; -0.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))/1e10),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e10
Warning: Explicit integral could not be found.  

F4 =

9999999998.5398333654497435804148
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-03-22 16:42:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢应助 2012-03-23 02:57:07
应该是值溢出了,建议稍微处理下表达式,比如分子都是 10^9乘以一个数,然后相加后除以10^10,那么直接10就可以了
3楼2012-03-22 17:16:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianaylk

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dbb627 at 2012-03-22 16:42:16:
q =1.0e+009  *;
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))/1e10),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e10
Warning: Explicit integral could not b ...

你好,非常感谢你的回复。但是你的变形是不等价的,因此得出的结果是有问题的,请再帮我考虑一下,谢谢!
4楼2012-03-22 18:47:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianaylk

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by ldoop at 2012-03-22 17:16:39:
应该是值溢出了,建议稍微处理下表达式,比如分子都是 10^9乘以一个数,然后相加后除以10^10,那么直接10就可以了

你好,非常感谢你的回复。你看到的可能是一楼作过变形后的表达式,但是那个变形和我的表达式是不等价的,原函数的形式请看主贴,貌似不太好处理...请再帮我考虑一下,谢谢!
5楼2012-03-22 18:50:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖


jjdg: 金币+1, 感谢应助 2012-03-23 02:57:21
引用回帖:
4楼: Originally posted by tianaylk at 2012-03-22 18:47:28:
你好,非常感谢你的回复。但是你的变形是不等价的,因此得出的结果是有问题的,请再帮我考虑一下,谢谢!

确实是有问题
下面变形应该等价
q =1.0e+008  *[2.3916; -3.6135; 1.8065; -0.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e8),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e8
Warning: Explicit integral could not be found.  

F4 =

149272173.68701522388239715123227

>> q =1.0e+009  *[2.3916; -3.6135; 1.8065; -0.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e8),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e8
Warning: Explicit integral could not be found.  

F4 =

log(numeric::int(1/exp(152725000*y^4 - (5051340117333333*y^3)/8388608 + 890400000*y^2 - (4908174540800001*y)/8388608 - 1248575000), y = 9/10..11/10)) + 100000000

>> q =1.0e+009  *[2.3916; -3.6135; 1.8065; -0.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e9),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e9
Warning: Explicit integral could not be found.  

F4 =

1492721786.6977684879699111309597
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
6楼2012-03-22 19:34:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianaylk

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by dbb627 at 2012-03-22 19:34:19:
确实是有问题
下面变形应该等价
q =1.0e+008  *;
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e8),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e8
Warnin ...

感谢版主解答!可是又发现问题了,如果把q的数值改变,例如把q(4)从-0.6109改为-5.6109,就又算不出结果了
q =1.0e+009  *[2.3916; -3.6135; 1.8065; -5.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e9),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e9
Warning: Explicit integral could not be found.
> In sym.int at 64

F4 =

log(numeric::int(1/exp(1402725000*y^4 - (5051340117333333*y^3)/8388608 - 6609600000*y^2 - (4908174540800001*y)/8388608 + 3401425000), y = 9/10..11/10)) + 1000000000

q =1.0e+009  *[2.3916; -3.6135; 1.8065; -5.6109];
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y.^4-6*y.^2+3))-1e10),y,0.9,1.1);
F3=log(F2);
F4=vpa(F3)+1e10
Warning: Explicit integral could not be found.
> In sym.int at 64
??? Error using ==> mupadfeval at 28
Error: Singularity [ln];
during evaluation of 'mlfloat'

Error in ==> sym.vpa at 42
       r = mupadfeval('mlfloat',s);

也就是说随着q的变化,指数中应该减去10的多少次方不是固定的,应该怎么办呢?还请版主再帮忙解答一下,谢谢!
7楼2012-03-22 20:28:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★
jjdg: 金币+1, 感谢应助 2012-03-23 02:57:31
余泽成: 金币+3, 谢谢应助,欢迎常来程序语言版! 2012-03-23 16:58:09
引用回帖:
7楼: Originally posted by tianaylk at 2012-03-22 20:28:48:
感谢版主解答!可是又发现问题了,如果把q的数值改变,例如把q(4)从-0.6109改为-5.6109,就又算不出结果了
q =1.0e+009  *;
syms y ;
F2=int(exp((q(1)*y+1/2*q(2)*(y.^2-1)+1/3*q(3)*(y.^3-3*y)+1/4*q(4)*(y ...

log(exp(100))

ans =

   100

>> log(exp(1000))

ans =

   Inf
这个是 你计算的数字实在很大,matlab没法表示,而你想通过减去一个数把它控制100左右,比较困难,我暂时还想不出较好的方法,也许你考虑将你的参数归一化,然后积分,或者考虑换个软件
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2012-03-22 21:33:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianaylk

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by dbb627 at 2012-03-22 21:33:10:
log(exp(100))

ans =

   100

>> log(exp(1000))

ans =

   Inf
这个是 你计算的数字实在很大,matlab没法表示,而你想通过减去一个数把它控制100左右,比较困难,我暂时还想不出较好的方法 ...

是啊,计算的确有点大,但其实取对数以后并不大,不知道该如何解决这个问题,已经采用符号积分,但还是只能计算到q为1e8数量级,希望版主有空再帮忙考虑一下,非常感谢~
9楼2012-03-22 22:11:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

397341529

新虫 (初入文坛)

看不懂啊
10楼2012-03-23 19:30:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tianaylk 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 301求调剂 +4 yy要上岸呀 2026-03-17 4/200 2026-03-17 17:37 by ruiyingmiao
[考研] 296求调剂 +4 大口吃饭 身体健 2026-03-13 4/200 2026-03-17 17:20 by 呦呦忧郁
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 材料专硕274一志愿陕西师范大学求调剂 +5 薛云鹏 2026-03-13 5/250 2026-03-17 10:15 by Sammy2
[基金申请] 国自科面上基金字体 +6 iwuli 2026-03-12 7/350 2026-03-16 21:18 by sculhf
[文学芳草园] 伙伴们,祝我生日快乐吧 +17 myrtle 2026-03-10 26/1300 2026-03-16 18:32 by 青橙Ln
[考研] 0854控制工程 359求调剂 可跨专业 +3 626776879 2026-03-14 9/450 2026-03-16 17:42 by 626776879
[考研] 0703化学调剂 ,六级已过,有科研经历 +7 曦熙兮 2026-03-15 7/350 2026-03-16 16:34 by houyaoxu
[考研] 283求调剂 +10 小楼。 2026-03-12 14/700 2026-03-16 16:08 by 13811244083
[基金申请] NSFC申报书里申请人简历中代表性论著还需要在申报书最后的附件里面再上传一遍吗 20+5 NSFC2026我来了 2026-03-10 14/700 2026-03-15 23:53 by 不负韶华的虎
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 304求调剂 +6 Mochaaaa 2026-03-12 7/350 2026-03-13 22:18 by 星空星月
[考研] 336求调剂 +6 Iuruoh 2026-03-11 6/300 2026-03-13 22:06 by JourneyLucky
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 311求调剂 +3 冬十三 2026-03-13 3/150 2026-03-13 20:41 by JourneyLucky
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 一志愿211化学学硕310分求调剂 +8 努力奋斗112 2026-03-12 9/450 2026-03-13 15:41 by JourneyLucky
[考研] 290求调剂 +7 ADT 2026-03-12 7/350 2026-03-13 15:17 by JourneyLucky
[论文投稿] 投稿问题 5+4 星光灿烂xt 2026-03-12 6/300 2026-03-13 14:17 by god_tian
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
信息提示
请填处理意见