0

そこで、値を返す proc を作成しました。((2.1) 以上の数値に対して正しい sqrt アナログ)。任意の数値を評価できますが、プロットできません。なぜ、どのように修正するのですか?

ここに画像の説明を入力

コード (1 次元の数学入力に変換):

> 
restart:
 with(plottools):
val := 248;
sqr := proc (sqrtFrom, iterations) answer := 0; ampl := 0; number := sqrtFrom; for k to iterations do answer := 10*answer; number := sqrtFrom*10^ampl; for i from 0 while i < number do answer := answer+1; i := answer^2 end do; answer := answer-1; difr := -1; while difr < 0 do ampl := ampl+1; difr := sqrtFrom*10^ampl-100*answer^2 end do end do; return evalf(answer/10^(iterations-1)) end proc;
> 
evalf(sqrt(val));
sqr(val, 10);
plot(sqr(x, 10), x = 3 .. 5);
> 
4

1 に答える 1

1

評価の引用符が必要です。試す

plot('sqr'(x,10), x = 3..5 ); あなたが得るエラーは、引数として x を使って sqr が時期尚早に呼び出されているためであり、それを行うことはできません。

または、sqr 自体を変更して、数値以外の引数を取得した場合に未評価を返すようにすることもできます (これが sqrt の動作です)。

于 2011-11-04T12:05:16.647 に答える