FindRoot - 符号结果转数值
我正在使用 FindRoot 语句。我的问题是结果 都只是象征性的形式。如何让mathematica 将结果存储为向量 或列出以方便以后使用。
g[r_]:=(A^r - 1)/(A^r - B^r);
func[r_]:= Piecewise[{{g[r],r<-.01 },{ g[r],r>.01} }];
roots = Table[0,{10}];
q= Table[pp,{pp,.01,0.1,0.01}];
Do[ roots[[i]]=FindRoot[func[r]== q[[i]],{r,0.9}];,{i,1,10}]; ********
Print[r/.roots]; *********** this prints out ok as a list
Pa2=Table[0,{10}];
myPa2=Table[0,{10}];
i/:IntegerQ[i]=True;
r2=r;
h[r2_]:=(A^r2 - 1)/(A^r2 - B^r2);
funcOC[r2_]:= Piecewise[{{h[r2],r2<-.01 },{ h[r2],r2>.01} }];
Do[ Pa2[[i]]=funcOC[r2[[i]]], {i,1,10} ];
Print[myPa2/.Pa2]; ****************symbolic notation is output
I am using the FindRoot statement. My problem is that the results
are only in symbolic form. How can I get mathematica to store results as a vector
or list for easy use later.
g[r_]:=(A^r - 1)/(A^r - B^r);
func[r_]:= Piecewise[{{g[r],r<-.01 },{ g[r],r>.01} }];
roots = Table[0,{10}];
q= Table[pp,{pp,.01,0.1,0.01}];
Do[ roots[[i]]=FindRoot[func[r]== q[[i]],{r,0.9}];,{i,1,10}]; ********
Print[r/.roots]; *********** this prints out ok as a list
Pa2=Table[0,{10}];
myPa2=Table[0,{10}];
i/:IntegerQ[i]=True;
r2=r;
h[r2_]:=(A^r2 - 1)/(A^r2 - B^r2);
funcOC[r2_]:= Piecewise[{{h[r2],r2<-.01 },{ h[r2],r2>.01} }];
Do[ Pa2[[i]]=funcOC[r2[[i]]], {i,1,10} ];
Print[myPa2/.Pa2]; ****************symbolic notation is output
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了扩展 Michael 的问题,目前的代码不会生成数值,因为 A 和 B 的值尚未设置。
如果为 A 和 B 选择值,FindRoot 不再返回符号答案。
对于你的第二个代码块,我假设你的问题是由 r2[[i]] 引起的:
我认为你的意思是:
你的意思是使用你在第一个代码块中找到的根吗?如果是这样则需要更换。
和
To expand on Michael's question the code, as it currently stands, does not produce numerical values because the values of A and B have not been set.
If values are chosen for A and B FindRoot no longer returns a symbolic answer.
For your second block of code I assume your problem is caused by r2[[i]] in:
I think you meant:
Did you mean to use the roots you found in your first block of code? If so you need to replace.
with