| 查看: 879 | 回复: 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],谢谢了 |
mshwangg
至尊木虫 (正式写手)
- 程序强帖: 5
- 应助: 206 (大学生)
- 金币: 10702.8
- 散金: 100
- 红花: 19
- 帖子: 597
- 在线: 195.4小时
- 虫号: 576702
- 注册: 2008-06-21
- 专业: 物理学I
2楼2010-10-16 14:12:38
ldoop
铁杆木虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 3485.8
- 散金: 3151
- 红花: 16
- 沙发: 1
- 帖子: 2225
- 在线: 285.5小时
- 虫号: 533053
- 注册: 2008-03-25
- 专业: 群落生态学
3楼2010-10-18 16:38:26
mshwangg
至尊木虫 (正式写手)
- 程序强帖: 5
- 应助: 206 (大学生)
- 金币: 10702.8
- 散金: 100
- 红花: 19
- 帖子: 597
- 在线: 195.4小时
- 虫号: 576702
- 注册: 2008-06-21
- 专业: 物理学I
4楼2010-10-19 13:57:24
ldoop
铁杆木虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 3485.8
- 散金: 3151
- 红花: 16
- 沙发: 1
- 帖子: 2225
- 在线: 285.5小时
- 虫号: 533053
- 注册: 2008-03-25
- 专业: 群落生态学
★ ★
ajian04(金币+2):谢谢参与交流~ 2010-10-22 16:16:30
ajian04(金币+2):谢谢参与交流~ 2010-10-22 16:16:30
|
好吧,我可以去掉定义,然后求的 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
mshwangg
至尊木虫 (正式写手)
- 程序强帖: 5
- 应助: 206 (大学生)
- 金币: 10702.8
- 散金: 100
- 红花: 19
- 帖子: 597
- 在线: 195.4小时
- 虫号: 576702
- 注册: 2008-06-21
- 专业: 物理学I
6楼2010-10-23 10:34:59
ldoop
铁杆木虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 3485.8
- 散金: 3151
- 红花: 16
- 沙发: 1
- 帖子: 2225
- 在线: 285.5小时
- 虫号: 533053
- 注册: 2008-03-25
- 专业: 群落生态学
|
谢谢你的回复。 关于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
mshwangg
至尊木虫 (正式写手)
- 程序强帖: 5
- 应助: 206 (大学生)
- 金币: 10702.8
- 散金: 100
- 红花: 19
- 帖子: 597
- 在线: 195.4小时
- 虫号: 576702
- 注册: 2008-06-21
- 专业: 物理学I
8楼2010-10-28 22:26:21
ldoop
铁杆木虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 3485.8
- 散金: 3151
- 红花: 16
- 沙发: 1
- 帖子: 2225
- 在线: 285.5小时
- 虫号: 533053
- 注册: 2008-03-25
- 专业: 群落生态学
|
不好意思,回复迟了。 谢谢你的回复,那个地方是个笔误,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
mshwangg
至尊木虫 (正式写手)
- 程序强帖: 5
- 应助: 206 (大学生)
- 金币: 10702.8
- 散金: 100
- 红花: 19
- 帖子: 597
- 在线: 195.4小时
- 虫号: 576702
- 注册: 2008-06-21
- 专业: 物理学I
10楼2010-11-13 00:27:30













回复此楼
