2017-04-10 29 views
-1

私は三角関数を解くためにRubyを練習しようとしています。三角関数を解くためのRubyと数学モジュール

trig関数は次のとおりです。y = (x^3 sqrt(2x^2))/(sin(x+5))ここでx = 51で、答えは度でなければなりません。問題はMatlabで解くことになっていますが、これは私の経験はありませんが、関数の出力を次のようにまとめています:1.1540e + 07、Matlabで行っていることが正しいことを確認したいのでRubyを使って、答えが私が得ようとしているものであることを確認したい。

私はこの機能を解決するために使用しようとしているRubyのコードは次のとおりです。コードを実行するときputs ((51 ** 3)Math.sqrt(2(51 ** 2))/(Math::sin(56.degrees)))は、しかし、私は、次のエラーを取得:

/Users/sam/Desktop/jasons_shit.rb:1: syntax error, unexpected tCONSTANT, expecting ')' 
puts ((51 ** 3)Math.sqrt(2(51 ** 2))/(Math::sin(56.degrees))) 
       ^
/Users/sam/Desktop/jasons_shit.rb:1: syntax error, unexpected '(', expecting ')' 
puts ((51 ** 3)Math.sqrt(2(51 ** 2))/(Math::sin(56.degrees))) 
         ^
/Users/sam/Desktop/jasons_shit.rb:1: syntax error, unexpected ')', expecting end-of-input 
puts ((51 ** 3)Math.sqrt(2(51 ** 2))/(Math::sin(56.degrees))) 

は、どのように私はこの機能を評価し、エラーの解決について行くことができます?

+0

が、これは、MATLABやルビーの質問ですか? – NKN

+0

@NKN Ruby。私はRubyの数学関数を使ってMatlabから抜け出した答えを再確認したい。 –

+0

@NKNと私はRubyの数学ライブラリを使っているときに何が起こっているのか分かりません –

答えて

2

あなたは*あなたが掛けたびに持っており、度をラジアンに変更してみてくださいする必要があります。

x = 51 
p (x ** 3) * Math.sqrt(2 * x ** 2)/(Math::sin((x+5) * Math::PI/180)) 

Rubyは操作の数学順序を理解するためにあなたはまた、非常に多くのparanthesisを必要としません。

1

エラーメッセージには、(*が表示されています。

目的変数はラジアンである必要があるため、最初に度を度からラジアンに変換してから計算を行う必要があります。 MATLABでも

xindeg = 51 
xinrad = xindeg*Math::PI/180 
puts xinrad ** 3 * Math.sqrt(2*xinrad ** 2)/Math::sin(xinrad+5*Math::PI/180) 

1.070855715686936 

次のように、正しい方法は次のとおりです。

x=51 
xinrad = x*pi/180; 
y = (xinrad^3 * sqrt(2*xinrad^2))/(sin(xinrad+5*pi/180)) 

y = 

1.070855715686936