24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 983  |  回复: 11
本帖产生 1 个 程序强帖 ,点击这里进行查看

ldoop

铁杆木虫 (著名写手)


[交流] 【求助】rsolve问题

Hi all,

I want to calculate the expression by a recurrence equation but I got this error:
RSolve::litarg: To avoid possible ambiguity, the arguments of the dependent variable in Hypergeometric2F1[a,a,a+n,z] should literally match the independent variables. >>

the code is:
F[n_] := Hypergeometric2F1[a, a, a + n, z]
RSolve[{(n + a) (n + a - 1 - (2 n - 1) z) F[n] - (n + a) (n + a - 1) (1 - z) F[n - 1] + n^2 F[n + 1] == 0,
  F[0] == ((a - 1) (1 - z))/(a - 1 + z) Hypergeometric2F1[a, a, a - 1, z]}, F[n],n]

请大家帮忙看看 程序有啥问题 或者有更好的办法求出F[n],谢谢了
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
ldoop(金币+1):谢谢参与
余泽成(金币+1):谢谢参与应助! 2010-10-16 17:08:34
ldoop(金币+1): 2010-10-18 16:39:03
ldoop(金币+1): 2010-10-21 22:31:22
第二个方程是显然的结果,可以从F[n]定义直接得出,而并非是初值。因此你还需要另外一个方程才能解出来
2楼2010-10-16 14:12:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


ajian04:谢谢参与交流~ 2010-10-22 16:16:18
引用回帖:
Originally posted by ldoop at 2010-10-15 16:16:41:
Hi all,

I want to calculate the expression by a recurrence equation but I got this error:
RSolve::litarg: To avoid possible ambiguity, the arguments of the dependent variable in Hypergeometric2 ...

我给定F[0]为常数,仍然求不出来,请问应该如何处理?谢谢
3楼2010-10-18 16:38:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
余泽成(金币+2):辛苦了! 2010-10-19 15:10:59
ldoop(金币+1): 2010-10-21 20:02:57
ldoop(金币+1): 2010-10-21 20:03:08
引用回帖:
Originally posted by ldoop at 2010-10-18 16:38:26:



我给定F[0]为常数,仍然求不出来,请问应该如何处理?谢谢

先帮我解释一下,既然你已经定义F[n_]了,为何还要求F[n]?
假定F[n]的定义和第一个方程是自洽的,那么第一个方程就是显然的了。
如果不知道F[n]的定义,通过第一个和第二个方程倒是可以求出来F[n]的表达式(和你所给出的F[n]定义一致)
4楼2010-10-19 13:57:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


★ ★
ajian04(金币+2):谢谢参与交流~ 2010-10-22 16:16:30
引用回帖:
Originally posted by mshwangg at 2010-10-19 13:57:24:

先帮我解释一下,既然你已经定义F[n_]了,为何还要求F[n]?
假定F[n]的定义和第一个方程是自洽的,那么第一个方程就是显然的了。
如果不知道F[n]的定义,通过第一个和第二个方程倒是可以求出来F[n]的表达式( ...

好吧,我可以去掉定义,然后求的 F[n]:
DifferenceRoot[ Function[{y, n]}, {(n +a) (1 + n + a) (-1 +  z) y[n] + (1 + n + a) (n + a - z - 2 n z) y[1 + n] + (1 + n)^2 y[ 2 + n] == 0, y[0] == (1 - z)^-a, y[1]== Hypergeometric2F1[a, a, a + 1, z]}]][n]
不知道是否正确?
但是我在进行NMaximize计算时,还是有问题,请帮忙看看我的程序:

n = Table[{5, 4, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1}];
f[r_, x_, a_, m_] :=
DifferenceRoot[ Function[{y,m]}, {(m +a) (1 + m + a) (-1 +  z) y[m] + (1 + m + a) (m + a - z - 2 m z) y[1 + m] + (1 + m)^2 y[ 2 + m] == 0, y[0] == (1 - z)^-a, y[1]== Hypergeometric2F1[a, a, a + 1, z]}]][m]
    L[r_, x_, a_] :=
   Sum[n[[j]] (Log[r] + Log[x]) + LogGamma[a + 1] +
     LogGamma[n[[j]]] - (n - a) Log[1 - x + r x] +
     Log[f[r, x, a, n[[j]]]] - Log[x] - Log[n[[j]]] -  LogGamma[n[[j]] + a] -
     Log[HypergeometricPFQ[{1, 1, 1}, {2, 1 + a}, x] - (1 - r) HypergeometricPFQ[{1, 1, 1}, {2, 1 + a},  x - r x]], {j, 1, Length[n]}];
NMaximize[{N[L[r, x, a]], 0 < x, x < 1, 0 < r, r < 1, a > 0}, {x, r, a}]

谢谢了
5楼2010-10-21 22:02:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

ldoop(金币+3): 2010-10-25 18:06:13
引用回帖:
Originally posted by ldoop at 2010-10-21 22:02:59:


好吧,我可以去掉定义,然后求的 F[n]:
DifferenceRoot[ Function[{y, n]}, {(n +a) (1 + n + a) (-1 +  z) y[n] + (1 + n + a) (n + a - z - 2 n z) y[1 + n] + (1 + n)^2 y[ 2 + n] == 0, y[0] == (1 - z ...

F[n]的结果和我求得的基本一样,不过是...Function[{y, n]}...中去掉]就一样了,可以把这个结果当作函数来用,就像你下面f[r_, x_, a_, m_]一样。

求解极大值的问题,我没有拿到结果,请你注意下列几个地方:
1、f[r_, x_, a_, m_]函数中z没有赋值
2、L函数中有...(n - a) Log[1 - x + r x] ...,其中的n是否是n[[j]]?
3、我对r=0.2,x=0.5,a=2,z=2赋值试算L函数值时发现,其值为复数
6楼2010-10-23 10:34:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


引用回帖:
Originally posted by mshwangg at 2010-10-23 10:34:59:

F[n]的结果和我求得的基本一样,不过是...Function[{y, n]}...中去掉]就一样了,可以把这个结果当作函数来用,就像你下面f[r_, x_, a_, m_]一样。

求解极大值的问题,我没有拿到结果,请你注意下列几个地方: ...

谢谢你的回复。
关于F[n]是我多打了半个]。还有关于Z我没说清楚,z=x(1-r),n是个向量。
程序如下:

n = Table[{5, 4, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1}];
f[r_, x_, a_, p_] :=
DifferenceRoot[ Function[{y,m]}, {(m +a) (1 + m + a) (-1 + x - x r) y[m] + (1 + m + a) (m + a - x + x r - 2 m x+2 m r x) y[1 + m] + (1 + m)^2 y[ 2 + m] == 0, y[0] == (1 - x + r x)^-a, y[1]== Hypergeometric2F1[a, a, a + 1, x - r x]}]][p]

L[r_, x_, a_] :=
   Sum[n[[j]] (Log[r] + Log[x]) + LogGamma[a + 1] +
     LogGamma[n[[j]]] - (n - a) Log[1 - x + r x] +
     Log[f[r, x, a, n[[j]]]] - Log[x] - Log[n[[j]]] -  LogGamma[n[[j]] + a] -
     Log[HypergeometricPFQ[{1, 1, 1}, {2, 1 + a}, x] - (1 - r) HypergeometricPFQ[{1, 1, 1}, {2, 1 + a},  x - r x]], {j, 1, Length[n]}];
NMaximize[{N[L[r, x, a]], 0 < x, x < 1, 0 < r, r < 1, a > 0}, {x, r, a}]


但是我得到这样的错误:

NMaximize::nnum: The function value {4.106586024641592,3.529769718777038} is not a number at {a,r,x} = {1.304935615948057,0.633070356251368,0.6828130868666602}. >>

是怎么回事?应该怎么避免?谢谢
7楼2010-10-25 21:21:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
nono2009(金币+2, 程序强帖+1):鼓励应助 2010-10-30 15:17:59
ldoop(金币+3): 2010-11-08 18:07:34

注意到图中涂黑的地方,n是数组,所以所得结果仍然是个表的形式
而且,我的结果为复数,和你的不一样,你比较下
8楼2010-10-28 22:26:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


不好意思,回复迟了。

谢谢你的回复,那个地方是个笔误,n 应该是n[[j]].但是仍然存在问题。主要是
1.计算过程中存在复数
NMaximize::nnum: The function value {4.106586024641592,3.529769718777038} is not a number at {a,r,x} = ...
你知道如何排除NMaximize过程中 出现复数的情况吗?

2.SystemException["MemoryAllocationFailure" 这个问题怎么解决呢?

我开始觉得是高斯hypergeometric 函数的问题,就对其中的一个做了相应的变化,但是仍然存在问题。后来我发现可能是参数约束条件的设置上的问题,应该是有上下确界的,即将原来的开区间限制条件(0
请帮忙看看 程序请看链接:
http://d.namipan.com/d/f03cb71ef ... df8407271a8fc9a0000
最原始的程序是CODE 1
后面是在此基础上做的一些修改。

万分感谢帮忙!
9楼2010-11-08 18:25:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)


resonant(金币+1):感谢交流与持续关注、讨论 2010-11-16 13:19:47
ldoop(金币+3): 2010-11-17 14:53:12
终于找到了问题所在了,出现复数的问题是由于Log[f[...]]项
由于r,x,a,j的取值变化,在f[]函数值为负值时取对数则为复数
如:r=0.2,x=05,a=2,j=2时为复数,而r=0.2,x=05,a=2,j=1时则为实数
排除这个问题之后,再看结果如何吧
引用回帖:
Originally posted by ldoop at 2010-11-08 18:25:18:
不好意思,回复迟了。

谢谢你的回复,那个地方是个笔误,n 应该是n[[j]].但是仍然存在问题。主要是
1.计算过程中存在复数
NMaximize::nnum: The function value {4.106586024641592,3.529769718777038} is n ...

10楼2010-11-13 00:27:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ldoop 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 290求调剂 +18 柯淮然 2026-04-12 20/1000 2026-04-13 12:56 by cyh—315
[考研] 085408光电信息工程专硕355一志愿长春光机所调剂 +3 王ymaa 2026-04-13 3/150 2026-04-13 11:01 by zhshch
[考研] 生物学调剂,一志愿西南大学348,Top期刊一区二作、二区三作,三等奖学金三次 +5 candyyyi 2026-04-09 5/250 2026-04-13 09:02 by 可淡不可忘
[考研] 322求调剂 +6 123安康 2026-04-12 13/650 2026-04-12 15:51 by 123安康
[找工作] 山东高校教师考核超级无底线,员工过不下去啦 +4 qut2026 2026-04-09 9/450 2026-04-12 00:54 by qut2026
[考研] 一志愿郑州大学 22408 305分求调剂 +5 安小满zzz 2026-04-08 5/250 2026-04-12 00:41 by 蓝云思雨
[考研] 材料工程日语考生求调剂 +7 0856?调剂 2026-04-10 7/350 2026-04-11 21:33 by 蓝云思雨
[考研] 农学0904 312求调剂 +3 Say Never 2026-04-11 3/150 2026-04-11 17:22 by daydayup2005
[考研] 296求调剂 +6 汪!?! 2026-04-09 6/300 2026-04-11 11:25 by zhq0425
[考研] 求调剂 +6 archer.. 2026-04-09 8/400 2026-04-11 10:55 by zhq0425
[考研] 0854调剂 +4 长弓傲 2026-04-09 4/200 2026-04-11 09:18 by 猪会飞
[考研] 一志愿211,化学310分,本科重点双非,求调剂 +23 努力奋斗112 2026-04-08 23/1150 2026-04-10 23:29 by 314126402
[考研] 本科西工大 324求调剂 +4 wysyjs25 2026-04-10 4/200 2026-04-10 20:00 by 来看流星雨10
[考研] 0702物理学学硕299求调剂 +6 祁柒连 2026-04-06 6/300 2026-04-10 11:10 by Roomoo
[考研] 初试分332,一志愿报考西北工业大学, +11 故人?? 2026-04-09 11/550 2026-04-09 21:54 by JineShine
[考研] 材料化工总分334求调剂 +16 Riot2025 2026-04-08 17/850 2026-04-09 20:19 by maddjdld
[考研] 一志愿中科院105500专业总分315求调剂 +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[论文投稿] 求助文献原文 10+3 18500821399 2026-04-08 3/150 2026-04-09 16:56 by 北京莱茵润色
[考研] 334求调剂 +16 Riot2025 2026-04-08 17/850 2026-04-09 09:28 by wdyheheeh
[考研] 259求调剂 +5 就爱吃土豆呀呀 2026-04-07 5/250 2026-04-07 22:40 by JourneyLucky
信息提示
请填处理意见