• ベストアンサー

sinを含む方程式の解

方程式 Asin(wt) = Bt + C をtについて解くとどうなるでしょうか? 研究でプログラムを組むために必要なのでぜひお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

とてもスマートには行かないと思います。本気で取り組むと、これだけで結構な仕事になっちゃう。 この方程式をいろいろな係数について何度も解くのかどうか、係数の精度がどの位か、値の範囲がどうか、などによってかなり事情が変わりますが、とりあえず一般論。 A=0,w=0,B=0のどれかの場合は簡単ですから、これらの場合は除外します。 T=wt, b=-B/(wA), c=-C/Aとおいて sin(T) + b T + c = 0 |b|≧1なら解は1個だけですが、|b|<1だと|b|が小さくなるほど解の数が多くなる。全部の解を求めるということだとなかなか大変です。 まず、|bT+c|≦1の範囲だけ調べれば良いことは自明です。(特定の範囲の解を求めるなら、そこだけ検討すればよい。)nπが求めたい解Tに近いような整数nを選んで、 nが偶数→T=x+nπ nが奇数→T=nπ-x と変数変換して代入し、 f(x)=sin(x)+p x + q f'(x)=cos(x)+p と表します。すると、x∈-π/2~π/2の間でf(x)=0の解を探せばよい。この範囲には最大3個の解があり得ます。そこで、近似的な出発値x[0]を見つけてこれをNewton法 x[n+1]=x[n]-f(x[n])/f'(x[n]) で改良するのが簡単です。ただし重解(y=0がy=f(x)の接線になっている)に近い場合は数値的に不安定になります。これをきちんと処理するのは難しい。(Tをπで割った余りを精密に計算する必要があり、数値の有効桁数が不足する現象(桁落ち)が起こるため、本当にy=f(x)がy=0に交差しているのか、接しているのか、微妙に離れているのか区別できなくなる恐れがあるからです。) 出発値x[0]を得るには、例えば適当な次数のマクローリン展開でも結構ですが、何度も解くのなら単にsineの数表を作っておいてlook upするのが簡単です。

sunasearch
質問者

お礼

丁寧な回答ありがとうございます. プログラムで解く以外にはないのですね. 御指摘の通りの解の存在する|bT+c|≦1の範囲で, sin関数と直線の交点はsin関数の1/4周期に最大1つあるようですので これをもとに二分探索で探すことにいたします. ありがとうございました.

その他の回答 (2)

  • Umada
  • ベストアンサー率83% (1169/1405)
回答No.2

この方程式は解析的には解けません。 この方程式の場合図的に解く方法が直感的で分かり易いですが、 プログラムに使うとなると図的解法は使えないですね。 数値解法を使うことになります。 プログラムに使うコンピュータがどんなものか分かりませんが、 大型機なら数値解法のモジュールが入っているはずです。 大して難しくありませんから、自分で組むことも十分可能です。 数値解法にはいくつか方法がありますので、問題に応じて適切なものを選択するとよいと思います。

  • e3563
  • ベストアンサー率21% (10/47)
回答No.1

こんにちは。 プログラムに使うのでしたら、「…展開」を使って近似して、そこからtについて解いてもいいような気がしますが…? テイラー展開などどうでしょう? あ、でも私は3次式の解法はよく分かりません。(^^;)

sunasearch
質問者

お礼

早速の回答ありがとうございます. 私も最終手段としては「・・展開」かなぁなどと考えているのですが, もしもっとスマートな解があればそちらを使いたいです. ないのかなぁ...

関連するQ&A

  • 微分方程式

    こんにちは^^ 微分方程式の問題でつまづいています。 m(d^2x/dt^2)=-kx^3 初期条件:t=0のときx=0、v=U という方程式なんですがどこから手をつけたらよいのか見当もつきません。 x=Asin(wt+δ) とおいたりしてみたのですが、どうにもx^3というのがやっかいです汗 一般解の導き方を教えてください。よろしくお願いいたします。

  • 4次方程式の解を求めるマクロ

    今学校で4次方程式の解を求めるマクロを作っています。 2次方程式までは作りました。なんかプログラムが書かれた紙をもらって打ち込んだらできました。そのあと4次方程式(ax^4+bx^2+c=0)を作る方法を考えてどんなふうに2次方程式のプログラムを変えたらいいか考えたんですけど、その考え方が合ってるかと、プログラムを変えたところがあってるかをみてほしいです。 まずx^2をmと置いて、am^2+bm+c=0にすると、m=-b±√b^2-4ac / 2a になってここからxを求めると、x=±√ -b±√b^2-4ac / √2a となると思います。そしたら解が4つ最大で出ると思うので、下の画像のようにプログラムを書き換えました。 家にはパソコンがなくて、学校でやろうと思うので、お返事は遅くなってしまうかもしれません。よろしくお願いします。

  • マックスウェル方程式の解

    マックスウェルの方程式について教えてください。 まず、マックスウェル方程式の解の導き方。 それと、マックスウェル方程式の次の4つの式が持つそれぞれの特徴。 (1) ∇・E=ρ/εo (2) ∇・B=0 (3) ∇・E=-∂B/∂t (4) C^2∇×B=j/Eo + ∂E/∂t これについてわかりやすく書いてあるサイトでも良いので教えて下さい。

  • 4次方程式の解

    4次方程式の解はフェラリの公式にて求まるらしいんですが、 本には 「ax^4+bx^3+cx^2dx+e=0(a≠0) ξ=x+b/4aにより ξ^4+pξ^2+qξ+r=0に移す。  後者の3次分解方程式 t^3-pt^2-4rt+(4pr-q^2)=0  の1根をt0とすれば、ξは二つの2次方程式   ξ^2±(√t0-p){ξ-q/2(t0-p)}+t0/2=0  を解いて得られる。」 と書いてあったのですが、 不勉強のせいか、意味が全く判らず、対処しかねています。 どなたか、この意味を噛み砕いて、教えて頂けないでしょうか? 宜しくお願いいたします。

  • 微分方程式の解

    下記の微分方程式の解を求めてください。 f=f(t)、C:定数とする。 f"ー{(f')^2}/f+2f/C=0

  • 2次方程式の解の表示

    次のプログラムが出来ません。 二次方程式の係数a,b,cを順に実数で入力したとき、2次方程式の解を出力。虚数解はそれらしく表示。 単純に考えると解の公式に当てはめる、というものですが、きれいに表示しようとすると、かなりの手間になります。 なんとか効率よく表示まで行える方法はありませんか? Cで簡単な関数のみで出来ると思います。

  • 三次方程式の解

    4ax^3-(a+2c)x^2+(c/2+ab+bc)x-bc/2=0 という方程式が計算をしていたら出てきたのですが、この方程式のxの解はどうやって求められるのでしょうか。

  • 方程式の解

    方程式-x*x*x*x*x+5*x+1=0の正の解のうち、最も小さいものを少数4桁で求めるプログラムを(while構文をつかって)造るには、どうすればよいですか。方程式も足し算や引き算と同じようにもとめられるのですか?

  • 解を求めたいのですが・・・

    Maxwell方程式と物質方程式から、均質な物体では ∇^2E-(εμ/c^2)(∂^2E/∂t^2)=0 ∇^2H-(εμ/c^2)(∂^2H/∂t^2)=0 の波動方程式が得られますが、ところでこの解はどうすれば求められますか?

  • 波動方程式の解

    電磁界の平面波に関する問題で偏微分方程式を 解く必要がでてきたので質問させていただきたいのですが、 ∂^2Ex/∂z^2=εμ∂^2Ex/∂t^2 の波動方程式の解は未定係数法により Ex=Ae^{jωt}e^{jβz}とおいて解くと、 β=ω√(εμ)とし、Ex=Ae^{jβz}となりますが、 これから、もう1つの偏微分方程式 -∂Hy/∂z=ε∂Ex/∂tから、Hyを求めたいのですが、 この偏微分方程式はどのように解いたらいいのでしょうか?答えは、(ω/β)εExとなるそうですが、途中の過程が 分からなくて・・・。 また、最初の偏微分方程式において解の形をA,βを未知数として、Ex=Ae^{jωt}e^{jβz}とおく未定係数法以外の方法で解く手段はあるのでしょうか? よろしければ回答お願いいたします。