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

このQ&Aに関連する最新のQ&A

A 回答 (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するのが簡単です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/23 10:28

この方程式は解析的には解けません。



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

数値解法にはいくつか方法がありますので、問題に応じて適切なものを選択するとよいと思います。
    • good
    • 0

こんにちは。


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

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

お礼日時:2001/02/22 19:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q高階連立常微分方程式の数値計算

4次のルンゲクッタ法を用いた数値計算を勉強しています.
1階連立常微分方程式と高階常微分方程式は理解でき,プログラムも作成することができました.

次に高階の連立常微分方程式を解こうと思ったら,頭が混乱してしまいました.

4次のルンゲクッタ法を用いて高解連立常微分方程式を解く考え方を教えて頂ければ嬉しいです.
また何か良い参考書があれば教えて頂きたいと思います.

よろしくお願いします.

Aベストアンサー

すべての変数の再高階でない微係数を、あらたな変数にしてしまえば、どんな高階の連立常微分方程式も1階連立常微分方程式になります。

たとえば、
x''+2y''+3x'y'=0
x''+4x''+5x'+6y'+7x+8y=0
とかだったら(超適当です)、
z=x' , w=y'
とすれば、
z'+2w'+3zw=0
z'+4w'+5z+6w+7x+8y=0
z-x'=0
w-y'=0
と4変数の1階連立常微分方程式になります。

Q三次方程式 94x^3+129x^2+170x-24=0 の厳密解(複

三次方程式 94x^3+129x^2+170x-24=0 の厳密解(複素数を含まない形)を教えてください

Aベストアンサー

>ちなみにどのようにして求めたのですか?
エクセルのゴールシーク機能で求めてみました。

その後、因数分解できることが分かりました。
参考までに、正確な解です。
(47x-6)(2x^2+3x+4)=0
から、x=6/47
でした。

Q数学II 式の計算と方程式

数学II 式の計算と方程式

二次方程式 x~2-3x+1=0 の解をa,bとするとき、a~2,b~2を解とする二次方程式を2つ求めよ。

という問題なのですが、解と係数の関係からa+bとabをもとめてみたもののどうにもなりません。

アドバイスをお願いします。

Aベストアンサー

No.2です。
No.2の要領でひとつ目の二次方程式をもとめたなら、
その式のグラフのx軸に関して対象なグラフの式がもうひとつです。
具体的にはひとつ目の式のx~2の係数が符号反対で
頂点のy座標の符号反対のもの。
あとはご自分で。

これで正解だと思います...
もう遅いかもしれませんがせっかく解いたので。

Q「n元1次方程式 x1+x2+・・・xn=r (r≧n)の正整数解は何

「n元1次方程式 x1+x2+・・・xn=r (r≧n)の正整数解は何組あるか」という問題です。
僕はx1~xnまで必ず最低1は入るので、残りの r-n の割り振りを考えればよいと考えました。
そこで、r-n を割り振る場合には nC1=n通り
また、 r-n-1,1 を割り振る場合には nC2*2通り
    r-n-2,2 を割り振る場合には nC2*2通り
    r-n-2,1,1 を割り振る場合には nC3*3通り
    r-n-3,3 を割り振る場合には nC2*2通り
    r-n-3,1,2 を割り振る場合には nC3*3通り
    r-n-3,1,1,1 を割り振る場合には nC4*4通り
・・・
最後は r-n-(r-n-1),1,1・・・ を割り振る場合には nCn*n=n通り
と考えていくと、
nC1+(r-n-1)nC2*2+(r-n-2)nC3*3+(r-n-3)nC4*4+・・・+2*nC[n-1]*(n-1)+1*nCn*n
=n+(r-n-1)nC2*2+(r-n-2)nC3*3+(r-n-3)nC4*4+・・・+2*nC1*(n-1)+n
としました。
このような考え方でよろしいのかアドバイスいただければと思います。
よろしくお願い致します。

「n元1次方程式 x1+x2+・・・xn=r (r≧n)の正整数解は何組あるか」という問題です。
僕はx1~xnまで必ず最低1は入るので、残りの r-n の割り振りを考えればよいと考えました。
そこで、r-n を割り振る場合には nC1=n通り
また、 r-n-1,1 を割り振る場合には nC2*2通り
    r-n-2,2 を割り振る場合には nC2*2通り
    r-n-2,1,1 を割り振る場合には nC3*3通り
    r-n-3,3 を割り振る場合には nC2*2通り
    r-n-3,1,2 を割り振る場合には nC3*3通り
    r-n-3,1,1,1 を割り振る場合には nC4*4...続きを読む

Aベストアンサー

これは重複組み合わせでよく出る問題で、答えは、
nH(r-n)=(r-1)C(r-n)
です。

例えば、n=4、r=7の場合は、
1114,1123,1132,1141,1213,1222,1231,1312,1321,1411,
2113,2122,2131,2212,2221,2311,3112,3121,3211,4111
の20通り。(4H3=6C3=20)


SATA_YUKIさんの式では、
4+2*4C2*2+1*4C3*3+4
なのか
4+2*4C2*2+4
なのかはわかりませんが、どちらにしても違っています。


考え方で間違っているのは、
「r-n-3,3 を割り振る場合には nC2*2通り」
などとしたときのnとrの条件を明確にしていない点でしょう。
(r-n-3≧3 に限定しないと他の場合と重複します)
あと、
r-n-4,2,2 を割り振る場合も考慮していますか?

Q常微分方程式の数値計算

実験で常微分方程式の数値計算をしました

y'(x)=2xy,y(0)=1.0(解はy=ex2)←eのx二乗の微分方程式できざみ幅h=0.1、区間〔0,2〕の条件で
オイラー法と改良オイラー法とルンゲクッタ法を使って
表計算ソフトを使って求めよとあるのですが、

表計算で近似値のy座標とか Δt後のxの変化分K1とか求めるのですが、全然意味がわからなくて、

何かいい方法はないでしょうか?

Aベストアンサー

No.8の補足への回答です。

>k1=Δt*(tan(x))^2*x*y
>k2=Δt*(tan(x))^2*(x+Δt/2)*(y+k1/2)
>でいいのでしょうか?

ちがいます。

(ア)f(t,x) = (tan(t))^2 の場合は、

k1=Δt*(tan(t))^2
k2=Δt*(tan(t + Δt/2))^2

(イ)f(t,x) = (tan(x))^2 の場合は、

k1=Δt*(tan(x))^2
k2=Δt*(tan(x + k1/2))^2

ところで、問題から見て、(ア)が正しいはずなのですが、もう一度確認していただけませんか?
ちょっと混乱しているので、確実にしたほうがよいと思います。
x=tan t - t を tで微分したら、(tan x)^2 ではなくて (tan t)^2 になります。

Q中学二年生の数学の問題です 2y=3x+1 x+y=8 この連立方程式を代入法で解く方法を教えてくだ

中学二年生の数学の問題です

2y=3x+1
x+y=8

この連立方程式を代入法で解く方法を教えてください。

Aベストアンサー

代入法で解くやり方は以下の4通り
①1つ目の式をx=にして2つ目の式に代入
②1つ目の式をy=にして2つ目の式に代入
③2つ目の式をx=にして1つ目の式に代入
④2つ目の式をy=にして1つ目の式に代入


x=(2y-1)/3
(2y-1)/3+y=8
5y-1=24
y=5
x=3


y=(3x+1)/2
x+(3x+1)/2=8
5x+1=16
x=3
y=5


x=8-y
2y=3(8-y)+1
5y=25
y=5
x=3

④y=8-x
2(8-x)=3x+1
15=5x
x=3
y=5

Qこの方程式は、計算機なしでいける?

1/x + sinxe^cosx = 0

・・・この方程式を、計算機を使わずに人力で解く方法はありますか?

Aベストアンサー

解析的には解けませんね。
数値計算で解くのであれば解けます。
高校の数学で習う?ニュートン法(ニュートン・ラプソン法とも呼ばれている)を使えば、かなり正確な数値解が得られると思います。
x=pが方程式の解なら、x=-pも解になる。解は正負組の解が無限に存在します。

ニュートン法を使えば、
f(x)=1/x+sin(x)*e^(cos(x))
のグラフの概形を描いて、大雑把な近似解を求め、それを使って計算すればよい。
計算してみると数値解は同じ絶対値の正負の実数解の組が無限に存在するが
絶対値の小さい方から6組計算すると以下のように求められます。
x1,x2=±3.7759...,
x3,x4=±6.2239...
x5,x6=±9.6982...
x7,x8=±12.5370...
x9,x10=±15.8775...
x11,x12=±18.8300...
....
などとなります。

参考URL:http://www.akita-nct.ac.jp/yamamoto/lecture/2005/5E/nonlinear_equation/text/html/node4.html

解析的には解けませんね。
数値計算で解くのであれば解けます。
高校の数学で習う?ニュートン法(ニュートン・ラプソン法とも呼ばれている)を使えば、かなり正確な数値解が得られると思います。
x=pが方程式の解なら、x=-pも解になる。解は正負組の解が無限に存在します。

ニュートン法を使えば、
f(x)=1/x+sin(x)*e^(cos(x))
のグラフの概形を描いて、大雑把な近似解を求め、それを使って計算すればよい。
計算してみると数値解は同じ絶対値の正負の実数解の組が無限に存在するが
絶対値の小さい方から6組計算...続きを読む

Qx+y+z=0,2x^2+2y^2-z^2=0のとき,x=yであることを証明せよ。

クリックありがとうございます(∩´∀`)∩

 ★x+y+z=0,2x^2+2y^2-z^2=0のとき,x=yであることを証明せよ。

この問題について説明をお願いします。

Aベストアンサー

おおざっぱな説明になりますが、左の式を
z=-x-y
として、それを右の式のzに代入します。
それを展開してまとめると
x^2-2xy+y^2=0
という式になります。
あとはこれを因数分解すれば
(x-y)^2=0
となるので、x=yという答えがでます。
与えられた条件がほかになければこれでいいはずです。

Q指数関数の混ざった方程式についての計算なのですが、

指数関数の混ざった方程式についての計算なのですが、

y=(Mc*e^rt0)/(1+c*e^rt0)を計算してc=の形にすると
(ただし、t=t0の時、y=y0となります。)
c=(y0*e^-rt0)/(m-y0)となるらしいのですが
なぜこうなるのか分かりません。
計算過程を教えてください。

また、このcをy=(Mc*e^rt)/(1+c*e^rt)に代入すると
y=(My0*e^r(t-t0)/(M-y0+y0*e^r(t-t0))となるらしいです。
この計算方法もわからないです。
教えてください。

ちなみにこの計算は人口予測を求めるロジスティック方程式の理論解を導出する過程
ででてくるものです。

Aベストアンサー

>y=(Mc*e^rt0)/(1+c*e^rt0)を計算してc=の形にすると
>ただし、t=t0の時、y=y0となります。)

 この式は、次の式のことですね。
  y0=M*c*exp(r*t0)/{1+c*exp(r*t0)}

 ここで計算過程を簡略化させるため exp(r*t0)=T とおきます。
 ∴y0=McT/(1+cT)

 以下、式変形を進めていきます。
 y0=McT/(1+cT)
⇔y0=M{1-1/(1+cT)}
⇔y0/M=1-1/(1+cT)  (M≠0なら)
⇔1/(1+cT)=1-y0/M
⇔1/(1+cT)=(M-y0)/M
⇔1+cT=M/(M-y0)   (分数の分母・分子をひっくり返しても両辺は等しいので。)
⇔cT=M/(M-y0)-1
⇔cT=y0/(M-y0)
⇔c=y0*T^(-1)/(M-y0)
∴c=y0*exp(-r*t0)/(M-y0)

 また、この c を c*exp(rt) に代入すると次のようになります。
 c*exp(rt)
=y0*exp(-r*t0)/(M-y0)*exp(rt)
=y0*exp{r(t-t0)}/(M-y0)

 したがって、y はつぎのようになります。
y=M*c*exp(r*t)/{1+c*exp(r*t)}
=M*y0*exp{r(t-t0)}/(M-y0)/[1+y0*exp{r(t-t0)}/(M-y0)]
=M*y0*exp{r(t-t0)}/[(m-y0)+y0*exp{r(t-t0)}]

>y=(Mc*e^rt0)/(1+c*e^rt0)を計算してc=の形にすると
>ただし、t=t0の時、y=y0となります。)

 この式は、次の式のことですね。
  y0=M*c*exp(r*t0)/{1+c*exp(r*t0)}

 ここで計算過程を簡略化させるため exp(r*t0)=T とおきます。
 ∴y0=McT/(1+cT)

 以下、式変形を進めていきます。
 y0=McT/(1+cT)
⇔y0=M{1-1/(1+cT)}
⇔y0/M=1-1/(1+cT)  (M≠0なら)
⇔1/(1+cT)=1-y0/M
⇔1/(1+cT)=(M-y0)/M
⇔1+cT=M/(M-y0)   (分数の分母・分子をひっくり返しても両辺は等しいので。)
⇔cT=M/(M-y0)-1
⇔cT=y0/(M...続きを読む

Q3次式「aX^3+bX^2+cX+d=0」の一般解(実数で)を誘導したいのですが,どうすればよいのでしょうか?

当方,応力の6成分を用いて,主応力成分を3つ求めたいと考えております.
3×3行列を対角化する演算を行うことになると考え,計算するうちに3次式を解く必要が出てまいりました.

3次式の解の公式を試しておりまして,
「a=1, b=-6, c=11 d=-6 → (x-1)(x-2)(x-3)=0を想定」の解は,理論どおりx=1,2,3と計算できたのですが,
「a=1, b=-13, c=47 d=-35 → (x-1)(x-5)(x-7)=0を想定」の解は,理論どおりのx=1,5,7とは,うまく計算できておりません.

また,最終的にはプログラムを構築する予定ですが,
Newton法やヤコビ法などのような収束計算を用いる方法は,計算コストの関係上あまり使用したくないと考えております.

ご教授の程,よろしくお願いいたします.

Aベストアンサー

双曲線関数を使ったアルゴリズム:
a X^3 + b X^2 + c X + d = 0 を Y = X + b/(3a) で置換すると、
4 Y^3 + p Y + q = 0 (p,q は定数) という形に変形できる。
更に Y = R sinh Z で置換すると、三倍角公式を使って
sinh(3Z) + q/R^3 = { 3 - p/R^2 }(sinh Z) と変形される。
3 - p/R^2 = 0 となるように R を定めれば、
sinh(3Z) = -q/R^3 となる。
ここで、sinh の逆関数を使って 3Z を求め、
sinh Z から X へとたどるのでは、超越的な計算になってしまう。
sinh z = (e^z - e^-z)/2 により、sinh(3Z) = -q/R^3 を
e^(3Z) に関する二次方程式と考えると、代数的計算だけで
e^(3Z) が求まる。実数の三乗根をとれば e^Z が得られるので、
sinh Z も計算できる。
途中、平方根と三乗根を使うから、計算機の上では
やはり収束計算が必要になってしまうけれども。

双曲線関数を使ったアルゴリズム:
a X^3 + b X^2 + c X + d = 0 を Y = X + b/(3a) で置換すると、
4 Y^3 + p Y + q = 0 (p,q は定数) という形に変形できる。
更に Y = R sinh Z で置換すると、三倍角公式を使って
sinh(3Z) + q/R^3 = { 3 - p/R^2 }(sinh Z) と変形される。
3 - p/R^2 = 0 となるように R を定めれば、
sinh(3Z) = -q/R^3 となる。
ここで、sinh の逆関数を使って 3Z を求め、
sinh Z から X へとたどるのでは、超越的な計算になってしまう。
sinh z = (e^z - e^-z)/2 により、sinh(3Z...続きを読む


人気Q&Aランキング

おすすめ情報