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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

受付中

F(x=y/a)な関数を基に、F1(y=a1x),F2(y=a2x) ~みたいに変換したい

hataki7
hataki7

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0回答

0評価

0クリップ

592閲覧

投稿2020/08/04 22:31

編集2022/01/12 10:55

原型のF(x=s/a)から、a1,a2,a3 ~ の定数項で変化を持たせた F1(y) F2(y) F3(y) ~ を作りたいけど方法がわからない

イメージ説明

原型の関数が下のコード

python

from scipy.special import kv import matplotlib.pyplot as plt from scipy.integrate import quad import numpy as np import math from math import gamma xs = np.logspace(-4, 2, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x,np.inf)[0]*x for x in xs] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*(x/2)**(1/3) for x in xs] H = [((math.pi/2)**(1/2))*(x**(1/2))*(math.exp(-x))for x in xs] def A(x,F,G,H): if x <= 5.0*1e-3: g =G elif 5.0*1e-3 < x < 30: g =F elif 30 <= x: g =H return g vec_A = np.vectorize(A) y = vec_A(xs,F,G,H)

ここから、x→ s/a1,s/a2 ~ みたいに変化させたいけど書き方の見当がつかない

python

from scipy.special import kv import matplotlib.pyplot as plt from scipy.integrate import quad import numpy as np import math from math import gamma m_e=9.10938356*1e-31 c=2.99792458*1e+8 q=1.6021766208*1e-19 pa=math.pi/2#ピッチ角# sin_pa=math.sin(pa) from sympy import * lf1=10#ローレンツ因子# lf2=100 lf3=1000 B1=10*1e-6*1e-4#磁場# B2=100*1e-6*1e-4 omega_c1=3*lf1**2*q*B1*sin_pa/(2*m_e*c) omega_c2=3*lf2**2*q*B1*sin_pa/(2*m_e*c) omega_c3=3*lf3**2*q*B1*sin_pa/(2*m_e*c) omega_c4=3*lf1**2*q*B2*sin_pa/(2*m_e*c) omega_c5=3*lf2**2*q*B2*sin_pa/(2*m_e*c) omega_c6=3*lf3**2*q*B2*sin_pa/(2*m_e*c) ###################################################1# ###x→ω x=x*ω_c# xs1 = np.linspace(1e-4*omega_c1, 1e2*omega_c1, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c1,np.inf)[0]*(x/omega_c1) for x in xs1] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c1)/2)**(1/3) for x in xs1] H = [((math.pi/2)**(1/2))*((x/omega_c1)**(1/2))*(math.exp(-(x/omega_c1)))for x in xs1] def A(x,F,G,H): if (x/omega_c1) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c1) < 30: g =F elif 30 <= (x/omega_c1): g =H return g vec_A = np.vectorize(A) y = vec_A(xs1,F,G,H) P1=(math.sqrt(3)*q**3*B1*sin_pa/(2*math.pi*m_e*c**2))*y ###################################################2# xs2 = np.linspace(1e-4*omega_c2, 1e2*omega_c2, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c2,np.inf)[0]*(x/omega_c2) for x in xs2] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c2)/2)**(1/3) for x in xs2] H = [((math.pi/2)**(1/2))*((x/omega_c2)**(1/2))*(math.exp(-(x/omega_c2)))for x in xs2] def A(x,F,G,H): if (x/omega_c2) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c2) < 30: g =F elif 30 <= (x/omega_c2): g =H return g vec_A = np.vectorize(A) y = vec_A(xs2,F,G,H) P2=(math.sqrt(3)*q**3*B1*sin_pa/(2*math.pi*m_e*c**2))*y ###################################################3# xs3 = np.linspace(1e-4*omega_c3, 1e2*omega_c3, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c3,np.inf)[0]*(x/omega_c3) for x in xs3] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c3)/2)**(1/3) for x in xs3] H = [((math.pi/2)**(1/2))*((x/omega_c3)**(1/2))*(math.exp(-(x/omega_c3)))for x in xs3] def A(x,F,G,H): if (x/omega_c3) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c3) < 30: g =F elif 30 <= (x/omega_c3): g =H return g vec_A = np.vectorize(A) y = vec_A(xs3,F,G,H) P3=(math.sqrt(3)*q**3*B1*sin_pa/(2*math.pi*m_e*c**2))*y ###################################################4# xs4 = np.linspace(1e-4*omega_c4, 1e2*omega_c4, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c4,np.inf)[0]*(x/omega_c4) for x in xs4] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c4)/2)**(1/3) for x in xs4] H = [((math.pi/2)**(1/2))*((x/omega_c4)**(1/2))*(math.exp(-(x/omega_c4)))for x in xs4] def A(x,F,G,H): if (x/omega_c4) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c4) < 30: g =F elif 30 <= (x/omega_c4): g =H return g vec_A = np.vectorize(A) y = vec_A(xs4,F,G,H) P4=(math.sqrt(3)*q**3*B2*sin_pa/(2*math.pi*m_e*c**2))*y ###################################################5# xs5 = np.linspace(1e-4*omega_c5, 1e2*omega_c5, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c5,np.inf)[0]*(x/omega_c5) for x in xs5] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c5)/2)**(1/3) for x in xs5] H = [((math.pi/2)**(1/2))*((x/omega_c5)**(1/2))*(math.exp(-(x/omega_c5)))for x in xs5] def A(x,F,G,H): if (x/omega_c5) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c5) < 30: g =F elif 30 <= (x/omega_c5): g =H return g vec_A = np.vectorize(A) y = vec_A(xs5,F,G,H) P5=(math.sqrt(3)*q**3*B2*sin_pa/(2*math.pi*m_e*c**2))*y ###################################################6# xs6= np.linspace(1e-4*omega_c6, 1e2*omega_c6, 10000) f = lambda z: kv(5/3,z) F = [quad(f,x/omega_c6,np.inf)[0]*(x/omega_c6) for x in xs6] a = gamma(1/3) G = [(4*math.pi/np.sqrt(3)/a)*((x/omega_c6)/2)**(1/3) for x in xs6] H = [((math.pi/2)**(1/2))*((x/omega_c6)**(1/2))*(math.exp(-(x/omega_c6)))for x in xs6] def A(x,F,G,H): if (x/omega_c6) <= 5.0*1e-3: g =G elif 5.0*1e-3 < (x/omega_c6) < 30: g =F elif 30 <= (x/omega_c6): g =H return g vec_A = np.vectorize(A) y = vec_A(xs6,F,G,H) P6=(math.sqrt(3)*q**3*B2*sin_pa/(2*math.pi*m_e*c**2))*y ##################################################### fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.grid() ax.set_xlim(1e-4*omega_c1, 10000*1e2*omega_c1) ax.set_ylim(1e-3*(math.sqrt(3)*q**3*B1*sin_pa/(2*math.pi*m_e*c**2)), 100*1e0*(math.sqrt(3)*q**3*B1*sin_pa/(2*math.pi*m_e*c**2))) ax.set_yscale('log') ax.set_xscale('log') ax.set_title('') ax.set_xlabel('ω') ax.set_ylabel('P') ax.plot(xs1,P1,"c",label="1") ax.plot(xs2,P2,"r",label="2") ax.plot(xs3,P3,"g",label="3") ax.plot(xs4,P4,"b",label="4") ax.plot(xs5,P5,"black",label="5") ax.plot(xs6,P6,"y",label="6") ax.legend() plt.show

上記の書き方では、狙っているような変換ができず、プロットされる。

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

aokikenichi
aokikenichi

2020/08/05 09:13

冒頭の式で y は関係ないと思われますが、どう関係するのでしょうか 原型のコードになく、冒頭に式にも関係なさそうなomegaなど2番目のコードは長くなってますが、 どう関係しているのでしょうか。 変数xを単に 変数s/定数a としたいならば元のコードの変数xを定数aで割れば同じかと思うのですが、、、
yymmt
yymmt

2020/08/05 11:45

添付されているグラフは正しい結果でしょうか\?質問の意図はソースコードを整理してコピペを無くしたいということでしょうか\?

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。