問題タブ [taylor-series]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
precision - テイラー級数を使用して精度の低下を回避する
テイラー級数を使用して、関数を解くための数値的に健全なアルゴリズムを開発しようとしています。私はかなり長い間それに取り組んできましたが、まだ運がありません。何が間違っているのかわかりません。
機能は
また、この関数で精度が失われるのはなぜですか? x がゼロに近い場合、sin(x)/ln(1+x) は x と同じ数にさえ近くありません。どこで重要性が失われているのかさえわかりません。
これを解決するには、sin(x) と ln(1+x) のテイラー展開を使用する必要があると思います。
と
それぞれ。分母のようなものを使用して x と sin(x)/ln(1+x) コンポーネントを組み合わせたり、3 つすべてを組み合わせたりしようとしましたが、最終的には何もうまくいかないようです。どんな助けでも大歓迎です。
calculus - Mapleでプログラム的にテイラー多項式を使用する
Mapleでプログラム的にテイラー多項式を使用しようとしていますが、以下は機能しないようです...
次のすべても機能しません。
f:=convert(T[6], polynom);
f:=convert(T[6], polynom, x);
f:=x->convert(T[6], polynom);
f:=x->convert(T[6], polynom, x);
。
convertの出力をコピーしての定義に貼り付けることなくこれを行う方法はありf
ますか?
assembly - 68hc11を使用したアセンブリ言語でのテイラー級数の実装
68hc11を使用してアセンブリの正弦値を計算するためにテイラー級数を実装する方法。
68hc11は浮動小数点をサポートしていないため、表示値は整数になります(たとえば、100を掛けて整数値を作成します)。
macos - 関数のテイラー級数展開を計算するための(無料の)ツールはありますか?
苦痛な試行錯誤の末、私は思い通りに動作するグロテスクな関数にたどり着きました。
私は、範囲0 <= x<=1とx=1での勾配の値のみを気にします。この間隔では、0 <= y<=1も同様です。
このためのテイラー級数展開を生成する無料のツール(WebベースまたはMAC OS X)はありますか?(私は1つを見つけましたが、それはそのような複雑な式で窒息し、腹筋をサポートしていません。)
級数展開を生成する私の目的は、計算がより効率的になる可能性があることです。(この関数はJavascriptで数十万回呼び出されるため、パフォーマンスが問題になります。)
または、カーブフィッティングツールがあれば、ポイントをサンプリングしてカーブフィッティングを行うこともできます。(残念ながら、私はMS Excelを所有していません。)無料の非線形カーブフィッティングツール(WebベースまたはMAC OS X)を知っていますか?
c - ゴールドシュミット部門の良い最初の見積もりを選ぶ
ARMのソフトウェアラスタライザーで使用するために、Goldschmidt除算を使用してQ22.10で固定小数点の逆数を計算しています。
これは、分子を1に設定するだけで実行されます。つまり、分子は最初の反復でスカラーになります。正直なところ、私はここでウィキペディアのアルゴリズムを盲目的にフォローしています。この記事によると、分母がハーフオープン範囲(0.5、1.0]でスケーリングされている場合、最初の適切な推定値は分母のみに基づくことができます。Fを推定スカラー、Dを分母とすると、F =2- D。
しかし、これを行うと、私は多くの精度を失います。512.00002fの逆数を見つけたい場合は言います。数値を縮小するために、シフトアウトされた小数部の精度が10ビット失われます。だから、私の質問は次のとおりです。
- 正規化を必要としないより良い見積もりを選択する方法はありますか?なんで?なぜだめですか?これが可能であるか不可能であるかについての数学的証明は素晴らしいでしょう。
- また、級数がより速く収束するように、最初の推定値を事前に計算することは可能ですか?現在、平均して4回目の反復後に収束します。ARMでは、これは約50サイクルの最悪のケースであり、clz/bsrのエミュレーションもメモリルックアップも考慮されていません。可能であれば、そうすることでエラーが増えるかどうか、そしてどれだけ増えるかを知りたいです。
これが私のテストケースです。注:clz
オンライン13のソフトウェア実装は、私の投稿からのものです。必要に応じて、組み込みに置き換えることができます。clz
先行ゼロの数を返し、値0の場合は32を返す必要があります。
c# - C# でテイラー多項式を生成してから使用する
私は C# で簡単なグラフの実装を作成しました。各ピクセルをそれが表すグラフ上の位置と比較し、その位置を曲線上にあるかどうかを確認する必要がある関数にプラグインすることで、物事をグラフ化できます。それはすべて順調です。
私が抱えている問題は、生成されたテイラー多項式を使用することです。たとえば、次のようにして、c を中心とする超越関数 f の n 次テイラー多項式を作成できます。
k = ((f(c) の k 次導関数) * (xc)^k)/k!
スタックオーバーフローで数学マークアップを行う方法がわかりませんし、ウェブでそれを行う能力がありませんが、それが理解できることを願っています. 左側は sigma _k=0 ^n などのように記述でき、_ は sigma の下のセクションを表し、^ は上の部分を表します...
したがって、次のような 0 (マクローリン、私が知っている) を中心とする cos(x) の 6 次のテイラー多項式を生成することになります。
"1 - x^2/2! + x^4/4! - x^6/6!"
これは、C# での単純な文字列操作によって実行できます。ループして、次の用語を文字列に追加するだけです。
文字列を関数として実際に使用してグラフの位置と比較し、そのグラフの位置が実際にこのグラフ上にあるかどうかを確認してグラフ化する方法を実際に理解することはできません。本質的に:C#で実際の数学関数として文字列を使用するにはどうすればよいですか、またはこれを行うためのより良い方法があります。
混乱を招く場合は本当に申し訳ありません...人々が助けることができる方法で説明するために最善を尽くしています.
c - マクローリン級数による関数近似
与えられた精度 (0.0001 など) で (1-x)^0.25 を近似する必要があります。ウィキペディアにある (1+x)^0.25 の展開を使用しています。現在の式が精度よりも低い場合、近似を停止する必要があります。
long double n は気にしないでください。:P これは、現在の式の値をチェックしているのではなく、1000 以上の式を計算しているときにうまく機能します。関数の定義域は <-1;1> で、s() は <-1;~0.6> で x の近似をうまく計算します。引数が大きいほど計算誤差が大きくなります。0.6からは精度を超えています。
私は英語の数学言語をよく知らないので、問題が十分に明確かどうかわかりません. 問題は、 while 条件の問題と、関数 s() が正しく近似されない理由です。
編集: 問題はほとんど解決しました。x>0 の場合、連続する式の絶対値を 1 から引く必要があります。
その後、精度は大幅に向上します (もちろん fox x>0)。重複エラーは、長い double 不正確性に起因します。それで全部です。とにかくあなたたちに感謝します。
c++ - EXP to Taylor シリーズ
exp(x) 関数をテイラー級数に拡張しようとしています。コードは次のとおりです。
}
問題は、大きな X または負の X を入力すると、プログラムがクラッシュすることです。そして、「0.00000000001」のように X を入力すると、結果は -1 になります。
アドバイスが必要です。手伝ってくれてありがとう。
wolfram-mathematica - 数学を使用したテイラー近似
宿題の場合:
Exp [x/3]のテイラー展開を考えると
y [x] = Summation(n> = 0)((添え字n)* x ^ n)と書きます。
10次までの係数(下付き文字n)を解きます。
string - Mathematica で文字列を不正またはサポートされていない式に変換しています。
var
Mathematica 関数 Series[ ] に次のように変数、たとえば を入力する必要がありますSeries[A^2+B^2+C^2, var]
。Series[ ] の構文は次のとおりです。
Series[f, {x, x_0, n}] は、点 x=x_0 に関する f の階数 n へのべき級数展開を生成します。
Series[f, {x, x_0, n}, {y, y_0, m}, ...] は、x、y などに関する級数展開を連続して見つけます。
Series[ ] を常に 1 次元で計算しているわけではない (つまり、反復ごとに常に変数であるとは限らない)B
ため、次元の要求に適合するように適切にフォーマットする必要があります。注意点として、 Mathematica はリストが好きなので、縮退したテーブルには一連の outer があります。C
var
{}
前のコードが次の 2 つのセットのセットを生成するとします。
テーブル[1] = {{A、0、n}};
テーブル[2] = {{A、0、n}、{B、0、m}}; .
私の最善のアイデアは、文字列操作を使用することです(i = 2の場合):
文字列 = ToString[テーブル[i]]; .
str = StringReplacePart[string, {" ", " "}, {{1}, {StringLength[string], StringLength[string]}}]
次のステップは、 do を実行して andのstr
ような式に変換することですが、これは次のエラーを返します。var
Series[A^2 + B^2 + C^2, var]
var= ToExpression[str]
ToExpression::sntx: "{A, 0, n}, {B, 0, m}" 内またはその前に無効な構文があります。
$失敗
適切な式への変換str
を支援するか、この問題を処理する別の方法を提案してください。