HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1208
CHSPの連立方程式9解決


C

リンク

2016/12/8(Thu) 17:47:51|NO.77502

HSPで連立方程式を代入法で解くプログラムを作っているのですがうまく行きません。
どうすればHSPで連立方程式を解けますか?教えてください。



この記事に返信する


C

リンク

2016/12/8(Thu) 18:04:44|NO.77503

できれば一次関数や他の公式も幾つか教えていただけると助かります。



C

リンク

2016/12/8(Thu) 23:32:21|NO.77510

代入法が難しいので加減法で作ったのですが、どうしても0で除算してしまいます。
どこが間違っているんでしょうか?


a=1 b=1 c=1 d=1 e=1 f=1 num=1 numn=1 numu=1 numm=1 *main cls mes "ax+by=c" : mes "dx+ey=f" input a input b input c input d input e input f mes ""+a+"x+"+b+"y="+c mes ""+d+"x+"+e+"y="+f /* ax+by=C dx+ey=F */ a*d num=b-e numn=c-f y=numn/num numu=b*y numm=-numu+c x=numm/a button "OK", *main mes x mes y ;if i==1 : goto *main : else : goto *stp *stp stop



掘木

リンク

2016/12/9(Fri) 08:25:53|NO.77514

いや、30行そこらのコードなんですし、
頭から実際に記述通りに実行結果を検証してみればいいじゃないですか。

inputは入力を待つ命令じゃないからね。一応。



C

リンク

2016/12/9(Fri) 18:50:13|NO.77516

>実行結果を検証してみればいいじゃないですか。
それを何度もやってるんですが絶対にエラーが出るので質問してます。



Y_repeat

リンク

2016/12/9(Fri) 19:21:18|NO.77519

自分中学生の頃、こういうの得意でしたw 2次元じゃなく 一次元二つなんですか
ax+by=C
dx+ey=F

ax+by=C
x=(C-by)/a
d(C-by)/a+ey=F
dC/a-by/a+ey=F
dC/a-F=((b/a)-e)y
y=(dC/a-F)/((b/a)-e)
x=(C-by)/a
x=C/a-(b/a)*(dC/a-F)/((b/a)-e)

こんなかんじで解の公式求めれませんか?
検算してないんで誤ってる可能性アリアリw
ググったらどっかに載ってるかもしれませんねw



C

リンク

2016/12/9(Fri) 19:28:17|NO.77520

>ax+by=C
>dx+ey=F

>ax+by=C
>x=(C-by)/a
>d(C-by)/a+ey=F
>dC/a-by/a+ey=F
>dC/a-F=((b/a)-e)y
>y=(dC/a-F)/((b/a)-e)
>x=(C-by)/a
>x=C/a-(b/a)*(dC/a-F)/((b/a)-e)


これで試してみます、有難うございます。



Y_repeat

リンク

2016/12/9(Fri) 20:28:11|NO.77522

ちょろっとググったら もっと簡単な解の公式がありました
http://mtf.z-abc.com/?eid=1315803



掘木

リンク

2016/12/9(Fri) 20:59:43|NO.77523

提起されたコードの実行結果の検証

a=1 b=1 c=1 d=1 e=1 f=1 num=1 // 一時変数定義 numn=1 // 一時変数定義 numu=1 // 一時変数定義 numm=1 // 一時変数定義 *main cls // mes "ax+by=c" : mes "dx+ey=f" // 文字通り表示 input a // オブジェクト設置 input b // オブジェクト設置 input c // オブジェクト設置 input d // オブジェクト設置 input e // オブジェクト設置 input f // オブジェクト設置 mes ""+a+"x+"+b+"y="+c // a,b,cはそれぞれ1,1,1なので // [1x+1y=1]と表示 mes ""+d+"x+"+e+"y="+f // d,e,fはそれぞれ1,1,1なので // [1x+1y=1]と表示 a*d // aをd倍 a=1*1 → a = 1 num=b-e // b-e = 1-1 → num = 0 numn=c-f // c-f = 1-1 → numn= 0 y=numn/num // numn/num = 0/0 [!]0除算 numu=b*y // --以降不実行-- numm=-numu+c x=numm/a
以上によりゼロ除算が発生。

本件は「x+y=1、x+y=1」という連立式の唯一解(x,yの組)を算出しようと演算をしているように思うが、
この連立式はそもそも唯一解ではないため、「唯一解を前提とした解の公式」を当てはめてはいけない。

あとは変数の型の問題であるとかが絡むけども、そこ以前の問題に引っかかっている。



C

リンク

2016/12/10(Sat) 03:44:49|NO.77536


/* a=3 c=4 f=1 b=4 e=1 */ a=1 c=1 f=1 b=1 e=1 *main cls mes "ax+by=c" : mes "dx+ey=f" input a input b input c input d input e input f mes ""+a+"x+"+b+"y="+c mes ""+d+"x+"+e+"y="+f /* ax+by=C dx+ey=F */ bj=b*d ej=e*a num=bj-ej cj=c*d fj=f*a numn=cj-fj y=numn/num numu=b*y numu=numu-(numu*2) numm=numu+c x=numm/a button "OK", *main mes "x="+x mes "y="+y ;if i==1 : goto *main : else : goto *stp *stp stop

色々悩んだ結果とりあえずまともに動く試作ができました、有難うございます!



ONION software Copyright 1997-2023(c) All rights reserved.