[過去ログ]
高校数学の質問スレ Part434 (1002レス)
高校数学の質問スレ Part434 http://rio2016.5ch.net/test/read.cgi/math/1712376048/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
473: 132人目の素数さん [sage] 2024/04/24(水) 07:48:50.30 ID:vygCixOx 朝の課題 複素平面上で点a,bを結ぶ直線と点c,dを結ぶ直線の交点の座標を計算する関数を作れ。 例:R言語でのコード intsect <- function(a,b,c,d){ a1=Re(a) ; a2=Im(a) b1=Re(b) ; b2=Im(b) c1=Re(c) ; c2=Im(c) d1=Re(d) ; d2=Im(d) if((a2-b2)*(c1-d1)==(a1-b1)*(c2-d2) | (a-b)*(c-d)==0) return(NULL) if(a1==b1 & c1!=d1) return( a1+1i*((d2-c2)/(d1-c1)*(a1-c1)+c2) ) if(a1!=b1 & c1==d1) return( c1+1i*((a2-b2)/(a1-b1)*(c1-a1)+a2) ) p=(a2-b2)/(a1-b1) q=(c2-d2)/(c1-d1) x= ((p*a1 - a2) - (q*c1 - c2))/ (p-q) y= p*x - (p*a1 - a2) return( x + 1i*y ) } http://rio2016.5ch.net/test/read.cgi/math/1712376048/473
479: 132人目の素数さん [sage] 2024/04/24(水) 09:57:41.56 ID:vygCixOx >>473 それをWolframに移植(言語の練習) intsect[a_,b_,c_,d_] :=( a1=Re[a] ; a2=Im[a]; b1=Re[b] ; b2=Im[b]; c1=Re[c] ; c2=Im[c]; d1=Re[d] ; d2=Im[d]; If[(a2-b2)(c1-d1)==(a1-b1)(c2-d2) || (a-b)*(c-d)==0, re=Null]; If[a1==b1 && c1!=d1, re=a1+((d2-c2)/(d1-c1)(a1-c1)+c2)I]; If[a1!=b1 && c1==d1, re=c1+((a2-b2)/(a1-b1)(c1-a1)+a2)I]; p=(a2-b2)/(a1-b1); q=(c2-d2)/(c1-d1); x= ((p*a1 - a2) - (q*c1 - c2))/ (p-q); y= p*x - (p*a1 - a2); re=x+y*I ) RのifとWolframのIfでの仕様が異なるので不具合が生じた。 if文はRはFALSEならその後は評価しないが、Wolframはその続きも評価する違い。 http://rio2016.5ch.net/test/read.cgi/math/1712376048/479
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.035s