繰り返し計算で得られる解を、直接計算して求める方法
こんにちは、
下記について、教えて下さい。
y=625.733*((2/5)*(1-x)*a2^2-(4/105)*(1+2*x)*a2^3);
があります。
a2は
a2->-((7*(-1+x))/(1+2*x))-s1;
です。
s1は
nが1のときは、s1=0
nが2以上のときは、s1=(92*n)/(y*10^6)
となります。
nを増やして、yが0.1に一番、近づいたときの
nを求めたいのですが、どのように計算すれば
良いでしょうか?
下記は、nを増やして、mathematcaを使用して数値計算で求めたものです。
答えは
n=14675
y=0.0829778
となりました。
もっと、スマートに直接計算する方法を教えて下さい。
x=0.767476;
a2=.;
For[n=1,n<2*10^4,n++,
If[nŠ1,s1=0];
If[n>1,s1=(92*n)/(y*10^6)];
y=625.733*((2/5)*(1-x)*a2^2-(4/105)*(1+2*x)*a2^3);
a2=-((7*(-1+x))/(1+2*x))-s1;
f=0.1;
If[y-f<0,Print["n=",n]];
If[y-f<0,Print["y=",y]];
If[y-f<0,Break[]];
];
下記は、以前、ここでご教示頂いたものですが、
いろいろと計算しますと、計算値が、上記の繰り返し計算の値と
異なってしまいます。
x=0.767476;
y=.;
n=.;
z=Solve[y-(625.733*((2/5)*(1-x)*(-((7*(-1+x))/(1+2*x))-(92*n)/(y*10^6))^2-(4/105)*(1+2*x)*(-((7*(-1+x))/(1+2*x))-(92*n)/(y*10^6))^3))Š0,n];
y=0.1;
Simplify[z]
お礼
とてもわかりやすいご説明ありがとうございました!