質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

489閲覧

2つの式の変数を定義したい

gen61banana

総合スコア7

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/23 13:07

編集2020/01/24 05:14

前提・実現したいこと

python2を使ってます。
まだ初心者ですが勉強のために様々なパターンの解き方を勉強しています。
今回は2つの式から関数bが最小値を取る時のxとyの値を調べるためのコードを書いています。
b=aπsin(x)*cos(y)
y=x+π
周りに教えてくれる人がいないためご教授お願いします。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

①関数xが定義されません。

②変数をx[0],x[1]にしてますが
同じ形式で変数x,yにした時にもエラーが出るため
そこの問題点も教えていただきたいです。

エラーメッセージ Traceback (most recent call last): File "~~.py", line 7, in <module> x[1] = x[0]+(math.pi) NameError: name 'x' is not defined

該当のソースコード

from scipy.optimize import fmin import math b = lambda x, a: a*(math.pi)*(math.sin(x[0]))*(math.cos(x[1])) x[1] = x[0]+(math.pi) a = 8 arg = (a, ) kai = fmin(b,[-1,-1],args=arg) print(kai) ソースコード

python2

試したこと

x[1]=lambda x:x[0]+π
などbの式と同じように定義しました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
初歩の初歩から勉強し直しますが
今回のを修正するとした場合の例も教えていただけたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shiracamus

2020/01/23 14:26 編集

ソースコードを code タグで囲んでください。 質問の中で四角で囲われて色が変わっている「ソースコード」の部分にソースコードを書けばいいです。
guest

回答1

0

pythonに限らず多くの手続き型プログラミング言語においてそうなのですが、「=」という代入記号は数学でいうところの「等式」を意味しません。ついでにいうと、「変数」という言葉にも、数学の「変数」と共通する意味はありません。

python

1x = 1

という代入文は、

  • 右辺を「評価」して「1というオブジェクト」(便宜的にこう書くしかありませんが、単なる文字列ではなくメモリ上のデータとして存在するもの)を作成する
  • それを左辺に書かれたxという名前に結びつける

という操作をしています。1と書く代わりにxと書いても良くなる訳です。基本的にはそれだけです。

であるからこそ、

python

1x = x + 1

のような操作も可能になります。この場合、先に右辺のx + 1を評価して2を得てから、それを改めてxに結びつけます。


このことからわかるのは、変数は事前に作られていないといけないということです。関数にしろ仮引数の宣言が必要であり、呼び出し時には実引数が渡されます。


これは極めて初歩的な内容です。プログラミングを始めたばかりであれば、プログラミングの思考法に慣れていないのは当然だと思います。

今回は2つの式から関数bが最小値を取る時のxとyの値を調べるためのコードを書いています。

これは初心者の課題としては高級すぎると思います。まずは簡単な入門書を通読してみてください。


python2は先のない言語です。勉強であればpython3を使うべきです。

投稿2020/01/23 15:26

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gen61banana

2020/01/24 05:18

ご丁寧な返信ありがとうございます。 確かにそもそもの考え方からつまづいている状況です... 1から勉強します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問