min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

数Ⅰとか数Aの 「 Ⅰ や A」にはどんな意味があるのか

 Ⅰ とか A を説明する人間がいない

「数学ⅠA」とは、「数学Ⅰ(高校の数学の必修科目)+数学A(必修ではないが難関大学受験にはほぼ必要になる科目)」を意味

meaning-dictionary.com

 

 

今まで誰に聞いても「何となく」だったものが、ChatGPTは答えてくれる。

ja.wikipedia.org

 

連続複利の (1+r)**2 をChatGPTに徹底的に説明させる

youtu.be

youtu.be

 

時点tに投資家が持っているお金がW(0)とするとき、1年後に口座に入っているのはW(0)+W(0)r なので、W(0)で囲むと(1+r)W(0)になるのはわかるけど、これが複利になったときにt年後に W(t)が(1+r)**t * W(0) と表現されるのが分からない。説明して

いや勝手に式変形しないで

2年目の総額で突然 (1+r)**2 が出てくるのが理解できん

総額の部分を (1+r) のようにカッコにまとめずに見せて

2年目の総額 W(0) + W(0) x r + W(0) x r + W(0) xr**2 を、3年目の元本で(断りもなく)W(0) + 2x W(0) x r +W(0) x r**2 に変形してしまっているので分かりにくい

min117.hatenablog.com

 

www.tiktok.com

Python数学 y=a**x と y=b**x の交わるトコ(積分の面積部分)に色を付ける

Pythonで、このグラフの斜線に色つけられるかなー、とか。

youtu.be

動画のなかで出てきた式は違うよ、ってChatGPTさんは言うのだが…

ま、いいや。コードしてみる。

y = a**x と y = -x**2 + b で囲まれた部分の面積

できた。

もうね、ChatGPTあれば何でもできるね。

 

$ cat myKINRImath19d.py
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad
from scipy.optimize import fsolve

#import pandas as pd
import pandas_datareader as web
#import matplotlib.pyplot as plt
# %matplotlib inline
import matplotlib.font_manager as fm
# plt.rcParams['font.family']='Droid Sans Japanese'
import japanize_matplotlib

from matplotlib import rcParams
rcParams['figure.figsize']=15,10
rcParams['font.size']=15
import sys
import os
import math

#import cv2
#from PIL import Image, ImageFont, ImageDraw
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import numpy as np

import subprocess

from sympy import Symbol, Derivative, sympify, pprint, pretty
from sympy.core.sympify import SympifyError
# ChatGPT from sympy import sympify, Symbol

import datetime
from datetime import datetime as dt
# import sys
# import os
# import numpy as np
# import matplotlib.pyplot as plt

import subprocess
# cdしないとcronで/rootに溜まっちゃう!
# スクリプトディレクトリを取得
script_directory = os.path.dirname(os.path.abspath(__file__))

# スクリプトディレクトリにカレントディレクトリを変更
os.chdir(script_directory)
#os.chdir('/media/WD30EZRX/PT3/')

# 現在の日時を取得
#execution_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
myTIMEE = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')
myARG0 = os.path.basename(__file__)

# myARG1 = sys.argv[1]


mySOURCE = ('''積分の面積公式5選!一瞬で面積を求める裏ワザを教えます\n https://www.youtube.com/watch?v=gPgGd22Nq0o''')

#mySOURCE = ('''
#ネイピア数 自然対数の底e とは\n
#    https://www.youtube.com/watch?v=1M7FF1nd25I\n
#に出てきたグラフを描く''')
print(mySOURCE)
print('-------------------------------')

 

 

# 定数
a = 2  # 例: a^x の a の値
b = 4  # 例: b^x の b の値
# alpha = 0  # 例: x = α
#alpha = -2  # 例: x = α

print('a を浮動小数点数に変更')
a = 2.0  # 'a' を浮動小数点数に変更
beta = 0  # 例: x = β

print('関数定義')
def f_a(x):
    return a ** x

def f_b(x):
    #return b ** x
    return -x**2 + b

print('交点を探すための関数')
def intersection(x):
    return f_a(x) - f_b(x)

print('交点を見つける(2つの交点を fsolve で探す)<- new')
alpha, beta = fsolve(intersection, [-2, 1])
print(f"交点: alpha={alpha:.4f}, beta={beta:.4f}")

print('面積計算の関数')
def integrand(x):
    # return np.abs(f_a(x) - f_b(x))
    return f_a(x) - f_b(x)  # f_a(x) が常に大きい場合← f_b(x)が下に凸

area, _ = quad(integrand, alpha, beta)
print(f"面積: {area:.4f}")

print('xの範囲')
# x = np.linspace(alpha, beta, 500)
# x = np.linspace(-4, 4, 1000)
x = np.linspace(alpha - 2, beta + 2, 1000)


print('グラフの描画')
#OKK plt.figure(figsize=(8, 6))
#` plt.plot(x, f_a(x), label=r'$y=a^x$', color='blue')
#` plt.plot(x, f_b(x), label=r'$y=b^x$', color='red')
plt.plot(x, f_a(x), label=r'$y=a^x$', color='blue', linewidth=2)
plt.plot(x, f_b(x), label=r'$y=-x^2 + b$', color='red', linewidth=2)

#OKK # 塗りつぶし
#OKK plt.fill_between(x, f_a(x), f_b(x), where=(f_a(x) > f_b(x)), color='lightblue', alpha=0.5)
#OKK plt.fill_between(x, f_b(x), f_a(x), where=(f_b(x) > f_a(x)), color='lightcoral', alpha=0.5)

# # 塗りつぶし
# plt.fill_between(x, f_a(x), f_b(x), color='lightblue', alpha=0.5)

#@ print('塗りつぶしぃ')
#@ plt.fill_between(x, f_a(x), f_b(x), where=(f_a(x) > f_b(x)), color='lightblue', alpha=0.5)

#OKK print('塗りつぶし: 交わる点と x=0 の間で塗りつぶし')
#OKK x_fill = np.linspace(alpha, beta, 500)
#OKK plt.fill_between(x_fill, f_a(x_fill), f_b(x_fill), color='lightgreen', alpha=0.6)

print('交点間の塗りつぶし')
x_fill = np.linspace(alpha, beta, 500)
plt.fill_between(x_fill, f_a(x_fill), f_b(x_fill), color='lightgreen', alpha=0.6)


print('軸と凡例')
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)

print('x軸とy軸の範囲を調整 <-new')
plt.xlim(alpha - 2, beta + 2)
plt.ylim(min(f_b(x)), max(f_a(x)) + 1)

#OKK print('x軸とy軸の範囲を広く設定')
#OKK plt.xlim(-4, 4)
#OKK plt.ylim(-10, 10)

# plt.title(r'Area between $y=a^x$ and $y=b^x$')
plt.title(r'Area between $y=a^x$ and $y=-x^2 + b$ (between intersections)')

# plt.xlabel('x')
# plt.ylabel('y')
plt.xlabel('x', fontsize=14)
plt.ylabel('y', fontsize=14)
plt.legend()

print('グラフ表示')
plt.grid(True)
plt.legend()
#plt.show()

# コメントをx軸の下に追加
# plt.figtext(0.5, -0.1, f"Script: {myARG0} | Executed on: {execution_time}", ha="center", fontsize=10)
# plt.figtext(0.5, -0.1, f"Script: {myARG0} | Executed on: {myTIMEE}", ha="center", fontsize=10)
kawacom = ''
#kawacom = f'{myARG1}のグラフと接線\n{datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")} \n({myARG0})'
#kawacom = f'{datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")} \n({myARG0})'
kawacom = f'{datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")} ({myARG0}) \n' + mySOURCE
plt.figtext(0.5, 0.01, kawacom, ha="center", fontsize=10)

#kawacom =  datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + ' \n(' + myARG0 + ')'
#@ kawacom = mySOURCE + '\n' + datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + ' \n(' + myARG0 + ')'

## plt.xlabel(kawacom)
# コメントをx軸の欄外に追加
# plt.figtext(0.5, -0.2, kawacom, ha="center", fontsize=10)
plt.figtext(0.5, 0.01, kawacom, ha="center", fontsize=10)

# 数式を吹き出しコメントとして表示
# plt.annotate(rf"${equation_input}$", xy=(0.5, 0.5), xytext=(0.5, 0.75),
#     textcoords='axes fraction', ha='center', va='center',
#     bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
#     arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0.5'))


#math12 # グラフをプロット
#math12 plt.figure(figsize=(8, 6))
#math12 plt.plot(x, y, label=r"$x^5 - 30x^3 + 50x$")
#math12 plt.xlabel('x')
#math12 plt.ylabel('y')
#math12 plt.title('Plot of $x^5 - 30x^3 + 50x$')
#math12 plt.grid(True)
#math12 plt.legend()

myPNG = 'myKINRImath19d.png'

# PNG形式で保存
# plt.savefig('myKINRImath12.png')
# plt.savefig(myPNG)
plt.savefig(myPNG, bbox_inches='tight')
#plt.show()
print('-------------------------------')
print(myPNG + ' を保存しました')
#print('(yの座標軸を画面中央に表示した版)')
print('-------------------------------')
print(mySOURCE)
print('-------------------------------')
print('''
積分の面積公式5選!一瞬で面積を求める裏ワザを教えます
\n
https://www.youtube.com/watch?v=gPgGd22Nq0o
''')
print('-------------------------------')
print('http://192.168.3.11:5000/PT3/doLSglob.php?CHDIR=PT3&GREPWORD=myKINRI&MKSORT=goMKSORT')

これまで書いたソースコードをjpg画像にしてAmazon Photo の容量無制限に保存

srcをjpgに

ChatGPTでやりたかったことがどんどん解決してく。

Linux で例えば python3 myKINRIsrc2jpg.py 'sample.py' とかして、sample.pyのソースコードを画像に落とす処理を実装できる?パイソンじゃなくても例えば bash myKINRIsrc2jpg.sh 'sample.py' のようにシェルスクリプトでもいいんだけど?

今回はbashでやろう。

$ vim myKINRIsrc2jpg.sh

いざ実行!

$ bash myKINRIsrc2jpg.sh

ぐっはデキタ。

ソースどれくらいの数あるかしら。

$ for i in html sh php py html js rb ; do echo "$i"; ls | grep "$i"$ | wc; done

よし。こいつらを全部画像に落としちゃおう。

$ for i in *html *sh *php *py *js *js
do
     echo "$i"
     bash myKINRIsrc2jpg.sh "$i"
done

明日の朝までしばらくこのまま放っておく。

 



1,000万円を超えたbitcoinを少しだけどもらえるURL

https://bitflyer.com/invitation?id=l50e5ljw&lang=ja-JP

ハピタスからポイントもらえるURL

その買うを、もっとハッピーに。|ハピタス

 

macOSのPython3のGUI(Qt5)で数学的幾何学模様を描いてみたい(Kritaとか使わずに)

結論

うまくいった。

きっかけ・経緯

この記事おもしろそう。てかThinkITサイト最近お気に入り。

thinkit.co.jp

 

ほいでmacOSでこれ試したい。

qiita.com

 

しかし出勤の時間が来たようだ。

早出して早帰りして夜試そう。

大成功

とりあえず動いた(ChatGPTに聞いた)

手順

まずはQt5をmacOSにインストール。

$ python3 -m pip install PyQt5  --break-system-packages

min117.hatenablog.com

入った。

 

ソースはこれ

冒頭の記事のコードをKritaとやらを使わないで動くようにChatGPTに書き換えてもらった。

thinkit.co.jp

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QPen, QBrush, QColor, QPainterPath, QPixmap
from PyQt5.QtCore import QPoint

class DrawWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Draw Fukidashi")
        self.setGeometry(100, 100, 800, 800)
        self.image = self.create_image(800, 800)
        
    def create_image(self, width, height):
        # キャンバスとなるピクスマップを作成
        pixmap = QPixmap(width, height)
        pixmap.fill(QColor(255, 255, 255))  # 背景を白で塗りつぶす
        painter = QPainter(pixmap)
        self.draw_fukidashi(painter)
        painter.end()
        return pixmap

    def draw_fukidashi(self, painter):
        # アンチエイリアスを有効にする
        painter.setRenderHint(QPainter.Antialiasing, True)

        # ペンを設定
        pen = QPen(QColor(0, 0, 0))
        pen.setWidth(4)
        painter.setPen(pen)

        # 塗りつぶし用のブラシを設定
        brush = QBrush(QColor(255, 255, 255))
        painter.setBrush(brush)

        # フキダシをベジェ曲線で描画
        path = QPainterPath()
        path.moveTo(100, 400)
        path.quadTo(100, 700, 400, 700)
        path.quadTo(700, 700, 700, 400)
        path.quadTo(700, 100, 400, 100)
        path.quadTo(100, 100, 100, 400)
        painter.drawPath(path)

        # フキダシから出る円を描画
        painter.drawEllipse(QPoint(660, 660), 30, 30)
        painter.drawEllipse(QPoint(710, 710), 20, 20)

    def paintEvent(self, event):
        # 画面に画像を描画
        painter = QPainter(self)
        painter.drawPixmap(0, 0, self.image)

def main():
    app = QApplication([])
    window = DrawWidget()
    window.show()
    app.exec_()

if __name__ == "__main__":
    main()





 

 



1,000万円を超えたbitcoinを少しだけどもらえるURL

https://bitflyer.com/invitation?id=l50e5ljw&lang=ja-JP

ハピタスからポイントもらえるURL

その買うを、もっとハッピーに。|ハピタス

 

Pythonからはじめる数学入門 で作った関数グラフで自然対数の底e(ネイピア数)を調べる

ネイピア数e をグラフで可視化したい

このyoutubeに出てきたグラフをPython3で描きたいのよ

www.youtube.com

 

できた

y = e**x(ネイピア数e

 

y = 2**x

(y=2のx乗)その接線 derivative(微分

 

↑↓ ネイピア数はこの間にあるらしい

(↑↓それぞれの直線がy軸と接したところの間)

 

y = 3**x

(y=3のx乗)その接線 derivative(微分

このあと

・y軸と接触したところに座標を表記したい

・2**x と 3**x とで縦軸(y軸)のメモリを合わせたい

どっちもできた

 



 

$ cat myKINRImath18Arg.py 
import pandas as pd
import pandas_datareader as web

import matplotlib.pyplot as plt
# %matplotlib inline
import matplotlib.font_manager as fm
# plt.rcParams['font.family']='Droid Sans Japanese'
import japanize_matplotlib

from matplotlib import rcParams
rcParams['figure.figsize']=15,10
rcParams['font.size']=15
import sys
import os
import math

#import cv2
#from PIL import Image, ImageFont, ImageDraw
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import numpy as np

import subprocess

from sympy import Symbol, Derivative, sympify, pprint, pretty
from sympy.core.sympify import SympifyError
# ChatGPT from sympy import sympify, Symbol

import datetime
from datetime import datetime as dt
# import sys
# import os
# import numpy as np
# import matplotlib.pyplot as plt

import subprocess
# cdしないとcronで/rootに溜まっちゃう!
# スクリプトディレクトリを取得
script_directory = os.path.dirname(os.path.abspath(__file__))

# スクリプトディレクトリにカレントディレクトリを変更
os.chdir(script_directory)
#os.chdir('/media/WD30EZRX/PT3/')

# 現在の日時を取得
#execution_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
myTIMEE = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')
myARG0 = os.path.basename(__file__)

if len(sys.argv) <= 1:
        print(f"書式エラー")
        print(f"書式: python {sys.argv[0]} \'数式\'")
        print(f"書式: python {sys.argv[0]} \'2**x\'")
        print('ネイピア数はこの間↑↓にある')
        print(f"書式: python {sys.argv[0]} \'3**x\'")
        sys.exit()

print(f"引数: {sys.argv[1]}")
#print(sys.argv[1])

myARG1 = sys.argv[1]

 

# print('Pythonからはじめる数学入門 20240901')
# print('-------------------------------')
# print('p203 高階微分と極大極小の計算 で作ったコードを使って')
# print('-------------------------------')
# print('p120 入力した関数のグラフを描くコード')
# print('-------------------------------')

mySOURCE = (''' myKINRImath18 y=a**x のグラフと接線の直線グラフを描く''')

#mySOURCE = ('''
#ネイピア数 自然対数の底e とは\n
#    https://www.youtube.com/watch?v=1M7FF1nd25I\n
#に出てきたグラフを描く''')
print(mySOURCE)
print('-------------------------------')

 

# ユーザーに方程式を入力させる
try:
    #equation_input = input("プロットしたい方程式を入力してください(例: x**5 - 30*x**3 + 50*x): ")
    equation_input = myARG1
    x = Symbol('x')
    equation = sympify(equation_input)
    #きれいな乗数表記をグラフのタイトルや吹き出しコメントで表示するために、SymPyのpretty関数やLaTeX形式を活用
    pretty_equation = pretty(equation)
except (SyntaxError, ValueError) as e:
    print(f"エラー: 入力が無効です: {e}")
    sys.exit(1)

# 微分して接線の傾きを計算
def derivative(equation, x_value):
    return Derivative(equation, x).doit().subs(x, x_value)

# 接線の方程式を定義
def tangent_line(x_vals, x_value):
    slope = derivative(equation, x_value)
    y_value = equation.subs(x, x_value)
    return slope * (x_vals - x_value) + y_value


## xの範囲を設定
## x = np.linspace(-5, 5, 400)
## x = np.linspace(-10, 10, 400)
x_vals = np.linspace(-5, 5, 400)

## 方程式を定義
## y = x**5 - 30*x**3 + 50*x
## y = 2*x + 3
# 方程式を評価してy値を計算
y_vals = [equation.subs(x, val) for val in x_vals]

# 接線を引きたい点
a = 1  # 接線を描画する x の値
tangent_vals = tangent_line(x_vals, a)

# グラフをプロット
# plt.figure(figsize=(8, 6))
plt.figure(figsize=(10, 8))

# plt.plot(x, y, label=r"$x^5 - 30x^3 + 50x$")
#plt.plot(x, y, label=r"$2x + 3$")
#plt.plot(x_vals, y_vals, label=f"${equation_input}$")
plt.plot(x_vals, y_vals, label=f"$y = {myARG1}$", color='blue')
plt.plot(x_vals, tangent_vals, '--', label=f'Tangent at x={a}', color='red')
plt.scatter(a, equation.subs(x, a), color='black')  # 接点をマーク
plt.text(a, equation.subs(x, a), f'({a}, {equation.subs(x, a)})', fontsize=12, verticalalignment='bottom')


# y軸を中央に配置
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)
plt.gca().spines['left'].set_position('zero')
plt.gca().spines['left'].set_color('black')
plt.gca().spines['bottom'].set_position('zero')
plt.gca().spines['bottom'].set_color('black')

# 右と上の枠線を消す
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')

plt.xlabel('x')
plt.ylabel('y')
#plt.title('Plot of $x^5 - 30x^3 + 50x$')
# plt.title('Plot of 2x + 3')
#plt.title(f'Plot of ${equation_input}$')
plt.title(f'Plot of $y = {myARG1}$ and its Tangent Line')
#plt.title(f'Plot of ${pretty_equation}$')
plt.grid(True)
plt.legend()

# コメントをx軸の下に追加
# plt.figtext(0.5, -0.1, f"Script: {myARG0} | Executed on: {execution_time}", ha="center", fontsize=10)
# plt.figtext(0.5, -0.1, f"Script: {myARG0} | Executed on: {myTIMEE}", ha="center", fontsize=10)
kawacom = ''
kawacom = f'{myARG1}のグラフと接線\n{datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")} \n({myARG0})'
plt.figtext(0.5, 0.01, kawacom, ha="center", fontsize=10)

#kawacom =  datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + ' \n(' + myARG0 + ')'
#@ kawacom = mySOURCE + '\n' + datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + ' \n(' + myARG0 + ')'

## plt.xlabel(kawacom)
# コメントをx軸の欄外に追加
# plt.figtext(0.5, -0.2, kawacom, ha="center", fontsize=10)
plt.figtext(0.5, 0.01, kawacom, ha="center", fontsize=10)

# 数式を吹き出しコメントとして表示
# plt.annotate(rf"${equation_input}$", xy=(0.5, 0.5), xytext=(0.5, 0.75),
#     textcoords='axes fraction', ha='center', va='center',
#     bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
#     arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0.5'))


#math12 # グラフをプロット
#math12 plt.figure(figsize=(8, 6))
#math12 plt.plot(x, y, label=r"$x^5 - 30x^3 + 50x$")
#math12 plt.xlabel('x')
#math12 plt.ylabel('y')
#math12 plt.title('Plot of $x^5 - 30x^3 + 50x$')
#math12 plt.grid(True)
#math12 plt.legend()

myPNG = 'myKINRImath18.png'
# PNG形式で保存
# plt.savefig('myKINRImath12.png')
# plt.savefig(myPNG)
plt.savefig(myPNG, bbox_inches='tight')
#plt.show()
print('-------------------------------')
print(myPNG + ' を保存しました')
print('(yの座標軸を画面中央に表示した版)')
print('-------------------------------')
print('http://192.168.3.11:5000/PT3/doLSglob.php?CHDIR=PT3&GREPWORD=myKINRI&MKSORT=goMKSORT')

 

# def derivative(f, var):
#     var = Symbol(var)
#     d = Derivative(f, var).doit()
#     pprint(d)

# if __name__ == '__main__':
#     print('Enter a function:')
#     f = input('微分したい(高次元の)関数を入力せよ:\n 例 2*x**2 + 3*x + 1 \n')
#     print('-------------------------------------')
#     print('Enter the variable to differentiate with respect to: ')
#     var = input('微分に使う変数を指定せよ(xとか) :')
#     print('-------------------------------------')
#     try:
#         f = sympify(f)
#     except SympifyError:
#         print('Invalid input 不正な入力です')
#     else:
#         derivative(f, var)
[fedora PT3]$ 

 

 

1,000万円を超えたbitcoinを少しだけどもらえるURL

https://bitflyer.com/invitation?id=l50e5ljw&lang=ja-JP

ハピタスからポイントもらえるURL

その買うを、もっとハッピーに。|ハピタス

 

天空の城ラピュタを(大人になってから)見て思うこと

2024/9/3(火)

ホーキング博士によれば、時間と空間は、実は同じものだそうだ。そして、時間と空間の両方を通り抜けられるものは、重力しかない。

 

飛行石は唯一、重力に逆らえるものだ。それは、空間の歪曲にも、時間の前後にも、影響されない。時空を越える石だ。

 

球面を平面で切ってみよう。スイカをシタジキ(下敷き)で切ったと思えばいい。シタジキに描かれるのは円だ。2次元の世界では、3次元の球も円に見えてしまう。現実も同じことでは?われわれ3次元の世界では、4次元の物体が球に見えてしまっているのかもしれない、19世紀の書「フラットランド」にはそう描かれている。その次元を、時空を、超えられるのが飛行石だ。

 

それが、地面の石たちに含まれている。地球の石たちに少しずつ含まれている。「土から離れては生きられない」とシータは言う。そんな、生物としての人間のすぐ足元に、宇宙の法則(重力)を超える石があるというのだ。なんというロマン。

 

園庭の壁。外から見れば石の壁なのに、内側からは空が見える。今の技術ですらこんなすさまじいものは作り出せない。「いや、内側から見える空は、液晶画面に映し出された映像だろう?」。そんなチャチなものじゃない。光を操る技術がここにはある。

 

光。重力と同じ、永久なるもの。人の力では操れないもの。アインシュタインは「光の速さだけは(どの運動系からみても)必ず一定だ」という発想から相対性理論を導いた。

この作品が描かれたのは1986年。プラザ合意の翌年。まだWindows95すら世の中にない。その時代に、この壁を発想する宮崎駿のすごさ。これが天才。

 

「何度でも甦るさ!それが人類の夢だからだ!」ムスカの言葉。これは本当だろう。みんなの想い、こうあってほしい、が作る力というのは確かにある。人の思いが集まって作り出すもの、目に見えない力。それはルソーが、社会契約論の中で捕まえた力。一般意志。そう考えれば、ムスカの言葉も、恐ろしい真実を突いている。

 

「あなたはここから出ることもできずに、私と死ぬの」。若干14歳のシータの覚悟の凄さ。地に根を張って生き、草刈りの季節に日の出の位置を知る少女は、子供ではなく、独りで生きる力を持つ人間だった。その口が発する死の言葉は重い。

 

「王だけ生きてるなんて滑稽だわ」

滑稽ときたか。すごい言葉だ。人は王になりたがる。ロシアのツァーリルイ14世、クメールルージュ、おごった自民党。誰一人として、権力を持った者が、自らそれを自制することなど、現実にはありえない。できない。それを、王みずからが滑稽という。そんな王は、統治は、実際に可能なのか。

 

バルス!」

全ては崩れた。壊れていくロボット、糸が切れたようにバラバラになって海に落ちていく。しかし「ワイヤーを張れば大丈夫だ」と言ってパズーとシータが乗った最後の凧から見えた園庭には、壊れていないロボットがいた。バルスしても、園庭のロボットは壊れないのだ。

王だけ生きているなんて滑稽、そんな状況になったら、王だけが奢った国家になってしまったら、「よいマジナイに力を与えるには悪いマジナイも知らなければいけない」、その言葉を使って、ラピュタを滅ぼさなければならない。そんな魔の言葉を使っても、壊れるのは戦闘ロボットだけで、園庭のロボットは壊れないのだ。戦争と平和。永久に壊れないもの。示唆が深い。

 

「おばさま痛い」と言われ「髪の毛を切られるほうがよっぽど辛いよ」と優しいドーラ。しかし、いっときの再開のあと、シータとパズーは手を振って海賊たちと別れた。弱冠14歳。それでも自分達の生き方をもった人間は、独立した人間は、ちゃんと別れを告げる。自分の生活があるからだ。地に根を張った生活が。

 

ラピュタはどこにいくのだろう。重力に逆らう、唯一時空の歪みを超えられる不思議な力をもった飛行石は、宇宙を背景にして、しかし根は張ったままだ。

 

 

youtu.be

 

1,000万円を超えたbitcoinを少しだけどもらえるURL

https://bitflyer.com/invitation?id=l50e5ljw&lang=ja-JP

ハピタスからポイントもらえるURL

その買うを、もっとハッピーに。|ハピタス