多様な価値観に寄り添う連立方程式の解提供


### 【はじめに：見えにくかった“ちがい”に気づき、これからの当たり前を見直すために】

性別のちがいによって、知らず知らずのうちに選択肢が限られてしまうことがあります。  
そのことに気づき、少しずつ社会の形を見直していこうとする動きが、いま少しずつ広がっています。  
そのひとつが、「**ジェンダード・イノベーション**」という考え方です。

たとえば東京工業大学では、理工系を目指す女性を後押しするために、「女子枠」を推薦入試に取り入れました。  
これは、これまで見えづらかった違いや声にきちんと耳を傾け、教育や研究の場に新しい視点を取り入れていこうとする試みです。

たとえば、薬の副作用が一部の人にだけ強く出たり、顔認識が特定の人をうまく認識できなかったり、  
車の安全設計が「標準的な身体」に偏っていたり──。  
「なんとなく使いづらい」「どこかしっくりこない」と感じる背景には、性別をめぐる思い込みや見落としがあるのかもしれません。

でも、そうした違和感に気づき、「これってなんだろう」と言葉にしてみることから、新しい発見が始まります。  
その気づきが、より多くの人に届くやさしい工夫や、誰かの選択を支える多様な解決策につながっていくのです。

---

### 【モヤモヤに数式を、違和感に答えを。社会を変える解の見つけ方】

「なんとなく居心地が悪い」「自分には合っていない気がする」――
そんな小さなモヤモヤは、誰の中にも存在しています。

ジェンダード・イノベーションを軸とした多角的なアプローチは、そうした声なき声や見過ごされがちな制約を、連立方程式を一つひとつ解いていくように、丁寧に構造化して理解し、解決へと導く有効な手段です。
技術、制度、文化といった複数の視点を横断的に再検討することで、STEM分野に存在する“見えにくい壁”を浮かび上がらせ、持続可能で再現性のある社会的ソリューションへとつなげていきます。

まずは、シンプルな連立方程式をAIで支援するツールを導入することで、アジャイルかつ対話的なジェンダー・インクルーシブなコミュニケーションの促進を目指します。
STEMの現場で曖昧だった“モヤモヤ”に言葉を与え、性差の視点から主体的に課題に取り組むことが、社会や組織にとっての新たな価値創出の出発点となるのです。

### モヤモヤを課題解決する連立方程式多様なソリューションズ

このコードは、連立一次方程式を5つの異なるアプローチ（代入法、クラメルの公式、最小二乗法、勾配降下法、Scipyによる数値解法）で解き、それぞれの手法の特性と結果を比較・可視化します。
解法の多様性を通して、科学・数学・AIが積み重ねてきた歴史と理論を辿りながら、複雑な課題にも複数の見方とアプローチがあることを示します。

そして最後に、多様な視点と論理的思考に基づいたソリューションを提示することで、
日常の中に潜む“モヤモヤ”や違和感を可視化し、一歩ずつ丁寧に解きほぐすためのヒントを提供します。

```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.linalg import solve  # Scipyの線形方程式ソルバーをインポート

# --- 変数定義 / Define coefficients / 변수 정의 / Définir les coefficients / Määritä kertoimet ---
a1, b1, c1 = 2, 3, 8
a2, b2, c2 = -1, 2, 3

# --- 1. 代入法 / Substitution Method / 대입법 / Méthode de substitution / Sijoitusmenetelmä ---
def substitution_method(a1, b1, c1, a2, b2, c2):
    y = (c2 * a1 - c1 * a2) / (b2 * a1 - b1 * a2)  # yを求める
    x = (c1 - b1 * y) / a1  # xを求める
    return x, y

# --- 2. クラメルの公式 / Cramer's Rule / 크래머의 공식 / Règle de Cramer / Cramerin sääntö ---
def cramers_rule(a1, b1, c1, a2, b2, c2):
    D = a1 * b2 - a2 * b1
    Dx = c1 * b2 - c2 * b1
    Dy = a1 * c2 - a2 * c1
    x = Dx / D
    y = Dy / D
    return x, y

# --- 3. 最小二乗法 / Least Squares / 최소 제곱법 / Moindres carrés / Pienimmät neliöt ---
def least_squares(A, b):
    x = np.linalg.inv(A.T @ A) @ A.T @ b
    return x

# --- 4. 勾配降下法 / Gradient Descent / 경사 하강법 / Descente de gradient / Gradienttilasku ---
def gradient_descent(A, b, lr=0.01, epochs=1000):
    x = np.zeros((2, 1))
    for _ in range(epochs):
        grad = 2 * A.T @ (A @ x - b)
        x -= lr * grad
    return x.flatten()

# --- 5. Scipyによるライブラリ解法 / Library method with Scipy / 라이브러리 해법 / Méthode bibliothèque / Kirjastomenetelmä ---
def library_solution(A, b):
    x = solve(A, b)
    return x

# --- 行列定義 / Define matrix form ---
A = np.array([[a1, b1], [a2, b2]])
b = np.array([[c1], [c2]])

# --- 各手法による解を計算 / Compute solutions using each method ---
x1, y1 = substitution_method(a1, b1, c1, a2, b2, c2)
x2, y2 = cramers_rule(a1, b1, c1, a2, b2, c2)
x3, y3 = least_squares(A, b).flatten()
x4, y4 = gradient_descent(A, b)
x5, y5 = library_solution(A, b).flatten()

# --- 結果出力（日本語のみ）/ Output in Japanese only ---
print("【代入法】       x =", x1, ", y =", y1)
print("【クラメルの公式】x =", x2, ", y =", y2)
print("【最小二乗法】   x =", x3, ", y =", y3)
print("【勾配降下法】   x =", x4, ", y =", y4)
print("【ライブラリ法】 x =", x5, ", y =", y5)

print(
    "\n 数学とAIの歴史\n"
    "18世紀、ガブリエル・クラメルはクラメルの公式を提唱し、線形代数の発展に寄与しました。\n"
    "20世紀にはアラン・チューリングが計算理論を築き、ジョン・マッカーシーやマービン・ミンスキーがAIの基盤を作りました。\n"
    "その後、ヴァンロッサムがPythonを開発し、ヒントンやベンジオらが深層学習を推進。\n"
    "NumPyやJupyterの登場によって誰もが科学と向き合える時代が訪れました。\n\n"
    "この歴史の中で、語られてこなかった視点――それが“多様性”です。\n"
    "これからのAIには、性差をはじめとする多様な視点を活かしたジェンダード・イノベーションが求められています。\n"
    "論理だけでなく、共感をもって社会に寄り添う。\n"
    "それが、私たちが目指す未来のソリューションズです。"
)

x_vals = np.linspace(-2, 6, 100)
y_line1 = (c1 - a1 * x_vals) / b1
y_line2 = (c2 - a2 * x_vals) / b2

plt.figure(figsize=(8,6))
plt.plot(x_vals, y_line1, label=f"{a1}x + {b1}y = {c1}")
plt.plot(x_vals, y_line2, label=f"{a2}x + {b2}y = {c2}")
plt.plot(x1, y1, 'ro', label="Solution (Substitution)")
plt.xlabel("x")
plt.ylabel("y")
plt.title("Solving Linear Equations (Graphical View)")
plt.grid(True)
plt.legend()
plt.axhline(0, color='gray', linewidth=0.5)
plt.axvline(0, color='gray', linewidth=0.5)
plt.show()


```
結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4043781/d2a4f1bb-9bcf-4757-8add-0dffb09ffc53.png)

※本コードの詳細な解説は割愛していますが、コメントには日本語・英語に加え、韓国語・フランス語・フィンランド語といった、
多様性に配慮し共生を重んじる先進国における理想的な価値観を意識した表現を取り入れ、教育的な観点からの実践的工夫を施しています。
背景や意図にご興味のある方は、マルチモーダル対応の生成AIを活用し、自ら問いを深めてみてください。




### いかがでしたか？
「誰かが黙るべき」「子を持つかどうかで語られる」といった一面的な枠組みから離れ、
多様な価値観を尊重しながら、“ひとりの人間”としてデジタルやAIと共に自らの可能性を広げ、対話を紡いでいく時代に私たちは生きています。



たとえば、書籍『退屈なことはPythonにやらせよう』が教えてくれるように、反復的で構造の決まった作業――連立方程式のような計算処理は、すでにAIが得意とする領域です。
一方で、私たち人間にしかできないことがあります。

それは、ジェンダード・イノベーションの視点から、
言葉にならない違和感や、見過ごされがちな声に耳を傾け、そこから新たな問いと価値を生み出していくこと。

今、必要なのは多様な視点に寄り添いながら、対話を重ね、最適な解を探る「ジェンダーソリューションズ」の力です。
共感と論理の両輪で、より豊かで持続可能な未来を、共につくっていきましょう。


https://www.oreilly.co.jp/books/9784873119274/