Plot 用另一参数求解微分方程的ND图

Plot 用另一参数求解微分方程的ND图,plot,wolfram-mathematica,differential-equations,Plot,Wolfram Mathematica,Differential Equations,我试图用数值方法解一个微分方程,但我需要改变y0,以得到常数x的绘图和视图结果。我可以像我预期的那样正常地解出我的方程:但正如你们所看到的,当我试图达到我的真正目的时,我无法得到结果 `\[Sigma] = 1; n = 23.04; Rop = y[x]; R = 0.5; sz = R/(Rop + R); F = -n*\[Sigma]*y[x]*(1 - 2*sz); s = NDSolve[{y'[x] == F, y[0] == 0.8}, y, {x, 0, 0.07}] Plot

我试图用数值方法解一个微分方程,但我需要改变y0,以得到常数x的绘图和视图结果。我可以像我预期的那样正常地解出我的方程:但正如你们所看到的,当我试图达到我的真正目的时,我无法得到结果

`\[Sigma] = 1;
n = 23.04;
Rop = y[x];
R = 0.5;
sz = R/(Rop + R);
F = -n*\[Sigma]*y[x]*(1 - 2*sz);
s = NDSolve[{y'[x] == F, y[0] == 0.8}, y, {x, 0, 0.07}]
Plot[Evaluate[y[x] /. s], {x, 0, 0.07}, PlotRange -> All,]`


`[Sigma] = 1;
 n = 23.04;
 Rop = y[x];
 R = 0.5;
 sz = R/(Rop + R);
 F = -n*\[Sigma]*y[x]*(1 - 2*sz);
 y0 = 0.8;
 \!\(\*
 ButtonBox["Array",
 BaseStyle->"Link",
 ButtonData->"paclet:ref/Array"]\)[s, 140]
 i = 1;
 For[i < 140,
  s = NDSolve[{y'[x] == F, y[0] == y0}, y, {x, 0, 0.07}]
      Plot[Evaluate[y[] /. s], x = 0.07, {y0, 0.8, 2.2}] // print
      y0 == y0 + i*0.01];`
`\[Sigma]=1;
n=23.04;
Rop=y[x];
R=0.5;
sz=R/(Rop+R);
F=-n*\[Sigma]*y[x]*(1-2*sz);
s=NDSolve[{y'[x]==F,y[0]==0.8},y,{x,0,0.07}]
绘图[计算[y[x]/.s],{x,0,0.07},绘图范围->全部,]`
`[西格玛]=1;
n=23.04;
Rop=y[x];
R=0.5;
sz=R/(Rop+R);
F=-n*\[Sigma]*y[x]*(1-2*sz);
y0=0.8;
\!\(\*
按钮盒[“数组”,
BaseStyle->“链接”,
ButtonData->“paclet:ref/Array”]\)[s,140]
i=1;
对于[i<140,
s=NDSolve[{y'[x]==F,y[0]==y0},y,{x,0,0.07}]
图[Evaluate[y[]/.s],x=0.07,{y0,0.8,2.2}]//打印
y0==y0+i*0.01]`

各种打字错误或误解

\[Sigma] = 1;
n = 23.04;
Rop = y[x];
R = 0.5;
sz = R/(Rop + R);
F = -n*\[Sigma]*y[x]*(1 - 2*sz);
y0 = 0.8;
For[i = 1, i < 140, i++, 
  s = NDSolve[{y'[x] == F, y[0] == y0}, y, {x, 0, 0.07}]; 
  Plot[Evaluate[y[x] /. s], {x, 0, 0.07}] // Print;
  y0 = y0 + i*0.01
];
\[Sigma]=1;
n=23.04;
Rop=y[x];
R=0.5;
sz=R/(Rop+R);
F=-n*\[Sigma]*y[x]*(1-2*sz);
y0=0.8;
对于[i=1,i<140,i++,
s=NDSolve[{y'[x]==F,y[0]==y0},y,{x,0,0.07}];
Plot[Evaluate[y[x]/.s],{x,0,0.07}]//打印;
y0=y0+i*0.01
];
仔细检查并将它与你的原创作品一次比较一个角色。
在您弄清楚为什么要进行每项更改后,您可以尝试决定是否将按钮放回该位置。

感谢您的回答,您的意思是微分方程不能以这种方式绘制?我不确定你是否明白我的意思。我将得到NDsolve x=0.07的最后一个数据,并将其绘制为{y0,0.8,90}我不知道“以这种方式”是什么,而且我确信,仅考虑到您最初写的单词,我不理解您的想法。也许是这个?表[(y[x]/.NDSolve[{y'[x]==F,y[0]==y0},y,{x,0,0.07}][[1,1]]]/.x->0.07,{y0,8,90,01}],但我猜不出您希望如何绘制它。想象一下,读者对你的想法一无所知,只能看着你写的字。如果你能想象的话,那么也许你可以想一想如何描述一个问题。我是一个新的程序员,不习惯问问题,所以我应该为我的错误道歉。“以这种方式”=我已经在范围(0,0.07)内解出了我的方程,但我只需要x=0.07中的y值,以表示y0的变化,所以我为循环编写代码,但当我试图给出绘图y0范围时,我有几个错误。我尝试FindMinimum和Last来取出for循环中的y[0.07],但这根本不起作用,这导致我无法以这种方式使用NDsolve。你能给我提供任何能正确读取NDsolve的函数吗?再次感谢您的帮助,用sol=Table[y[x]/.NDSolve[{y'[x]==F,y[0]==y0},y,{x,0,0.07}][[1]],{y0,8,9,01}]替换从y0=0.8到代码末尾的所有内容;sol/.x->.07,它给你y[.07]表示y0=.8,y[.07]表示y0=.81,等等,这给了你“x=0.07中的y值表示各种y0”,这和我在前面的评论中所展示的差不多,一个列表,列出了每个y0值x=.07处的y[x]值。您还可以绘制[sol,{x,0,0.07}]