• 締切済み

ax-by=c

stomachmanの回答

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

(条件1)ax+by=c (条件2)x≧0かつy≧0 において、(条件1)と(条件2)を共に満たすような<x,y>の集合のうちで ・xが最小であるような<x,y>のxの値 minx ・yが最小であるような<x,y>のyの値 miny を求めたい、という問題と読みました。  言い換えれば、x,y平面にax+by=cのグラフを描いて、その第一象限の部分(つまり条件2を満たす部分)だけを見たとき、 ・xが最小であるような点においてそのときのxは幾らか。 ・yが最小であるような点においてそのときのyは幾らか。 (無論、「xが最小であるような点」と「yが最小であるような点」とは必ずしも一致しません。)という問題です。 ============================ [1] a=0, b=0の場合  (条件1)は 0=c と書き直せます。  [1-1] c=0の場合   x,yとして任意の実数を持ってくると(条件1)は満たされます。   だから(条件2)だけ考慮すればよく、minx = 0, miny = 0 です。  [1-2] c≠0の場合   x,yとしてどんな実数を持ってきても(条件1)は満たせません。従って   minx, minyは存在しません。 [2] a≠0, b=0の場合  (条件1)は ax=c と書き直せます。だから x=c/a が(条件1)を満たす唯一のxです。  そして、yは何であっても良い。  [2-1] c=0、またはaとcが同符号の場合(ac≧0と言っても同じ)   minx = c/a, miny=0です。  [2-2] c≠0かつ、aとcが異符号の場合(ac<0と言っても同じ)   minx,minyは存在しません。 [3] a=0, b≠0の場合  [3-1] c=0、またはbとcが同符号の場合(bc≧0と言っても同じ)   minx = 0, miny=c/bです。  [3-2] c≠0かつ、bとcが異符号の場合(bc<0と言っても同じ)   minx,minyは存在しません。 [4] a≠0, b≠0の場合  [4-1] c=0の場合   直線ax+by=cは必ず<0,0>を通るから、   minx=0, miny=0  [4-2] c≠0の場合   直線ax+by=cとx軸との交点は<c/a,0>、   直線ax+by=cとy軸との交点は<0,c/b>です。   [4-2-1] aとbが同符号の場合(ab>0と言っても同じ)    c/aとc/bは同符号です。    [4-2-1-1] aとcが同符号の場合(ac>0と言っても同じ)     <minx,c/b>= <0,c/b>、<c/a,miny> = <c/a,0>     です。つまり、     minx=0, miny=0    [4-2-1-2] aとcが異符号の場合(ac<0と言っても同じ)      直線ax+by=cは第一象限を通らない。だから、      minx,minyは存在しません。   [4-2-2] aとbが異符号の場合(ab<0と言っても同じ)    <c/a,0>か<0,c/b>、このどちらかが<minx,miny>と等しい。    そしてc/aとc/bはどちらかが正、どちらかが負です。従って、    [4-2-2-1] aとcが同符号なら(ac>0と言っても同じ)     c/a > 0 だから minx = c/a, miny = 0    [4-2-2-2] aとcが異符号なら(ac<0と言っても同じ)     minx = 0, miny = c/b ============================ さて、これを整理しなおしてみましょう。記号で表して (××) とは「minx,minyは存在しない」のこと (00) とは「minx=0, miny=0」のこと (0▼) とは「minx=0, miny=c/b」のこと (▲0) とは「minx=c/a, miny=0」のこと としてみると、 c>0  b>0: a>0…(00)、a=0…(0▼)、a<0…(0▼)  b=0: a>0…(▲0)、a=0…(××)、a<0…(××)  b<0: a>0…(▲0)、a=0…(××)、a<0…(××) c=0…(00)  b>0: a>0…(00)、a=0…(00)、a<0…(00)  b=0: a>0…(00)、a=0…(00)、a<0…(00)  b<0: a>0…(00)、a=0…(00)、a<0…(00) c<0  b>0: a>0…(××)、a=0…(××)、a<0…(▲0)  b=0: a>0…(××)、a=0…(××)、a<0…(▲0)  b<0: a>0…(0▼)、a=0…(0▼)、a<0…(00) となります。 「効率が良い」というのを処理速度のことだとするなら、下手な条件分岐は却って処理速度を落とします。  これをこのまま3次元配列にしておくのがひとつの方法でしょう。つまりたとえば、 a,b,cについて、負のときに0、0のときは1、正のときは2となる番号を付け、 また、(××) を0, (00)を1, (0▼) を2, (▲0)を3で表すことにする。そういう配列dをstaticとして作っておく。ですから、 d[0][1][2] は c<0, b=0, a>0 の場合を表すので、その値は3((▲0)を表す)です。  で、a,b,cが与えられたとき、それぞれの符号を符号関数で取り出して、 負のときは0 0のときは1 正のときは2 となるインデックスia, ib, icを作ります。この3つのインデックスを使って配列dを引く(つまりd[ic][ib][ia]を参照する)と、どんな処理をすべきかの番号(0~3)が取り出せますから、それに従ってswitchすれば良い。

kanousan
質問者

お礼

To:ご回答くださった皆様 4ヶ月半もの間、お礼の一つもしなかったとこを深くお詫び申し上げます。 そして、大変詳細な回答、心より感謝いたします。 ありがとうございました。 しかしながら・・・未だ問題解決には至っておりません。 ですがこのまま放っておくのも失礼なので、一旦〆させていただきます。 ポイントの方ですが、甲乙つけるのは無理なので、全員20点満点といきたいところですが、ポイントつけられる人数に限りがございますので、ここはあえてポイントをつけません。ご了承下さい。 それでは、またの機会に、よろしくお願い致します。 本当にありがとうございました!!

関連するQ&A

  • ax+by+c=0とy=ax+bについて

    質問の方、失礼致します。 ある参考書には、直線y=2x-3をax+by+c=0の形に2*x-1*y-3のように式変換をすればax+by+c=0の形でも直線y=2x-3を表すことが出来ると書いてあるのですが、2*x-1*y-3この式の -1 いわば ax+by+c=0 の b に当たる部分はどこからやってきたのでしょうか…? 今現在の自分の理解が追いついていると思われる点は、ax+by+c=0 こちらの式の aは傾き xはx座標 yはy座標 cはy切片(xが0の時のyの位置) b…? といった様な解釈になります。ご教示の程よろしくお願い致します。

  • 非負整数a,b,c,x,yで、ax+byとcが互いに素でなくなるのは?

    非負整数a,b,c,x,yで、ax+byとcが互いに素でなくなるのは? a,b,cは互いに素でa^2+b^2=c^2、またx,y,cも互いに素であるとします。 例えば、(a,b,c)=(3,4,5)、(x,y)=(-1,7)ならば、 ax+by=25となって、cと素でなくなりますが、 どういった条件が成り立てば良いのでしょうか? 任意の整数の組(x,y)が与えられた時に、 (ax+by)/c≠0が約分できるような(a,b,c)の組を知りたいのです。 よろしくお願いします。 ちなみに以前の質問↓の続きです。 http://okwave.jp/qa/q6158436.html

  • 近似式(z=ax+by+c)を取得したい

    エクセルの散布図だとx軸-y軸で散布図を書き、近似式も自動で作成できますが、これを3次(x軸-y軸-z軸)に拡張して、 z=ax+by+c のような近似式を得たいと考えています。データの特性上、線形(直線)に限定して問題ありません。(x,y,z)のデータは十分揃っています。そのようなツール、もしくは計算式がありましたら教えてください。 よろしくお願いします。

  • {ax+by|x,y∈Z}

    aとbが互いに素とは限らないときは、{ax+by|x,y∈Z}は、aとbの最大公約数の倍数全体の集合になる。この定理の証明でわからない点があるので質問します。 これらの定理は、S={ax+by|x,y∈Z}とおくと集合Sが"差に関して閉じている"という性質をもつ。 (x_1,x_2,y_1,y_2∈Zのとき、(ax_1+by_1)-(ax_2+by_2)=a(x_1-x_2)+b(y_1-y_2)ここでx_1-x_2,y_1-y_2∈Zとなること)ので、ある正の整数dを用いてS={nd|n∈Z}(Sはdの倍数全体)と表されるのであるが、 Sの最初の定義から、a∈S(x=1,y=0とする)かつb∈S(x=0,y=1とする)であるから、aとbはdの倍数(dはa,bの公約数)であり、・・・(1) ここからがわからないところです。他方、ax_0+by_0=dとなる整数x_0,y_0が存在するのだから、a,bの任意の公約数はdの約数であるから・・・(2)、dはa,bの最大公約数というわけである。で証明は終わるのですが、 証明の大まかな流れは、(1)よりd≦(a,b) (a,b)は、aとbの最大公約数、(2)よりd≧(a,b)よって、d=(a,b)だと思うのですが、ax_0+by_0=dをa'dx_0+b'dy_0=dとしてみたりしても、a,bの任意の公約数はdの約数であるから、というのがわかりません。どなたか、他方、ax_0+by_0=dとなる整数x_0,y_0が存在するのだから、a,bの任意の公約数はdの約数である。を説明してください。お願いします。

  • 最小二乗法。円の方程式x^2+y^2+Ax+By+C=0において、最小二乗法でA,B,Cを求める式をあらわすとどうなりますか。

    円の方程式x^2+y^2+Ax+Bx+C=0において、最小二乗法でA,B,Cを求める式をあらわす場合、どうなりますか。複雑な行列式であらわさないとだめなのですか。y=ax+bの場合の最小二乗法は何とかわかるのですが、未知数がA,B,Cの3つになると、わからなくなります。ご指導お願いいたします。

  • D<0とax^2+bx+c=0について

    , y=ax^2+bx+cの頂点が(-b/2a,-D/4a)よりD<0の場合ax^2+bx+c=0(a≠0)にはなりませんが x=(-b±√D)/2aがD<0となるとxが虚数となるので、ax^2+bx+c=0にならないという解釈でもよいでしょうか?後、x軸、y軸上に取るものはすべて実数で虚数ということはx軸上に存在しないということですよね?

  • Y=A(X-By)

    Y=A(X-By) この式を展開すると (1+AB)y=AX になるようですが、 Y=A(X-By) Y=AX-ABy ABy+Y=AX ここまでしか分からないので教えて下さい

  • ax+by=1の1つの整数解の見つけ方

    aとbが整数のとき xyの方程式ax+by=1 の1つの整数解をみつける代数的なテクニックがありますよね 質問1 そのテクニックを教えてください 質問2 そのテクニックの適用範囲をおしえてください      (=1 ではなく=一般の整数 でも使えるかどうか など) 参考書の回答をみると 79x-339y=1 の1つの整数解をみつけようとしている箇所で 『339=79×4+23  79=23×3+10 23=10×2+3 10=3×3+1 よってx=103 y=24 である 』 との記載がありましたが これだけでは具体的に何をやっているのかわかりません…

  • 2次関数y=ax^2-4ax+3

    aを正の定数とする。2次関数y=ax^2-4ax+3の0≦x≦3における最小値が-5であるとき、aの値を求めよ。またこの関数の0≦x≦3における最大値を求めよ。 という問題があるのですがやり方が分かりません。 平方完成をしてみたものの、そこから先ができなくて困っています。 どんたかご協力をお願いします。

  • ax+by=1(x,yは整数)の解法について質問です。

    ax+by=1(x,yは整数)の解法について質問です。 79x-339y=1(x,yは整数) という問題があったのですが、解答で、 339=4*79+23 79=3*23+10 23=2*10+3 10=3*3+1 として、 1=10-3*3 =10-3*(23-2*10) ここまでは今までやってきたことの 逆の操作のをしていっているのだと 思うのですが、この次で、 1=7*10-3*23 となっています。 この式はどこからでてきたのでしょうか? 解説をいただけるとうれしいです。