前々回はピタゴラスの三体問題という全員がどこかに飛んで行ってしまうものをやってみた。
今回は周期解。実はもう数百万とか解が見つかっているそうだが、まずは一番簡単で有名な8の字解。
前々回と初期値と質量が違うだけなのでコードは省略。こちらに初期値と質量の値があります。
Python+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)を使う(その7) 三体問題の周期解いろいろ(1) 8の字解
そして結果の動画。
お互い追いかけあっているようで面白い。
次は別の周期解でやってみる。
・Microwave Journalでテラヘルツデバイス製造解説
https://www.microwavejournal.com/publications/1
スペシャルフォーカスはケーブル&コネクタ。
https://www.microwavejournal.com/publications/1/editions/348
・IgnionのRF、アンテナ向けAIツールOxionが2.0に
・TIが1.38mm²の超小型MCU発表
・IntelのCEOはLip-Bu Tanに
「このミステリーがすごい!」大賞を取ったということで本屋さんで平積みになっていたのを買ってようやく読めた。
アマゾンリンク:https://amzn.to/41whbxT
連作短編5作からなる小説で、あらすじはこれ。
「大学一年生の市倉小春は漫画家を目指しつつ、大阪府豊中市にあるパン屋〈ノスティモ〉でアルバイトをしていた。あるとき、同じパン屋で働いている親友の由貴子に、一緒に行くはずだったライブビューイングをドタキャンされてしまう。誘ってきたのは彼女のほうなのにどうして?疑問に思った小春は、彼女の行動を振り返り、意外な真相に辿りつく……。 」
とにかく豊中付近は私もよく知っているところなので親近感。阪急オアシスが出てきたときは笑った。もちろん阪急電車も出てくる。
解く謎がちょっとしたもので、それもちょっと強引?と思うのもあったがこれはそういうことを楽しむ話ではなくて、柔らかい空気感とか、雰囲気、登場人物たちの心情、そしてパンを楽しむお話で結構面白かった。選考理由で人柄ならぬ小説柄がいい、というのが出てたのはなるほどと納得。人が死なないミステリが読みたい方はぜひ。
・NordicとQorvoがAliroとMatterのリファレンスアプリケーション提供
Nordic
Qorvo
・TSMCとMediaTekがパワーアンプと電源管理ユニット統合
・Silicon Labsが超小型Bluetooth Soc
Silicon Labs Unveils BG29: The Future of Bluetooth® LE in Miniature Devices
・ QuectelがWi-Fi/BTモジュール発表
Quectel introduces FCM363X Wi-Fi 6 and Bluetooth 5.3 module for high-performance short-range connectivity
今回は千葉逸人さんが中二病用語と言っていたこれをやってみる。
詳しくはスカラーペディアに。
この式を計算してます。
早速動画から。
ぐるぐる回っていたと思ったら突然広がって戻るのが面白い。スカラーペディアに出ていた図ともよく合ってる。
ソースコードはこちら。
using UnityEngine;
using System;
using System.Collections.Generic;
using Microsoft.Research.Oslo;
using System.Linq;
public class MathNET05 : MonoBehaviour
{
List<float> x0 = new List<float>();
List<float> x1 = new List<float>();
List<float> x2 = new List<float>();
int count;
int n;
void Start()
{
double t0 = 0.0;
double tmax = 1000.0;
n = 20000;
double dt = tmax / n;
var sol = Ode.RK547M(
0,
new Vector(0.012277918, -2.356078578, 0.018241293),
(t, x) => Bluesky(t, x),
new Options
{
AbsoluteTolerance = 1e-12,
RelativeTolerance = 1e-12
});
var points = sol.SolveFromToStep(t0, tmax, dt).ToArray();
n = points.Length;
count = 0;
foreach (var s in points)
{
x0.Add(Convert.ToSingle(s.X[0]));
x1.Add(Convert.ToSingle(s.X[1]));
x2.Add(Convert.ToSingle(s.X[2]));
}
}
void Update()
{
if (count < n)
{
transform.position = new Vector3(x2[count], x1[count], x0[count]);
}
count += 5;
}
Vector Bluesky(double t, Vector x)
{
double[] xdot = new double[3];
double myu = 0.456;
double eps = 0.0357;
xdot[0] = x[0] * (2.0 + myu - 10.0 * (x[0] * x[0] + x[1] * x[1]))
+ x[2] * x[2] + x[1] * x[1] + 2.0 * x[1];
xdot[1] = -x[2] * x[2] * x[2] - (1 + x[1]) * (x[2] * x[2] + x[1] * x[1] + 2.0 * x[1])
- 4.0 * x[0] + myu * x[1];
xdot[2] = (1 + x[1]) * (x[2] * x[2]) + x[0] * x[0] - eps;
return new Vector(xdot);
}
}
|
・iFixitが任天堂Alarmoを分解、なんと24GHzセンサ積んでる!
Adafruitsと共同で解析している。うごきセンサーは要するにミリ波レーダー。
型番からすると(SC1233A)Socionextのもの。
FCCでの検索結果
https://fcc.report/FCC-ID/BKECLO001
・Next G Allianceが6Gに向けたデジタルツインとFWAのホワイトペーパー発行
・Qorvoが統合型UWB SoC発表
・SemtechがLora、u-bloxとTelitがGNSSモジュール発表
・3GPPが韓国で6Gワークショップ開催
・パナソニックのスマートホーム用モジュールにNordic nRF54L15が採用
・QuectelがQualcomm ICを使ったスマートモジュール発表
・TDKがMnZnフェライト材料2種発表
・QualcommがEdge Impulseを買収
Google ColabでJuliaが使えるようになっていたということで普及しそう。しかし私は全然いじったことがない…
この機会にちょっと触ってみよう。とりあえず公式サイトのマニュアルをペラペラと読んで5%くらいは分かった。
任意精度演算がデフォルトで可能なのを知ったので、最近うちのブログによくアクセスがあるタッパーの自己言及式をやってみる。big(数)としただけで使えるのは便利。ただ途中で改行するとエラーになったので(括弧の中なのに?)一行が長い…
コード:
using Plots
setprecision(BigFloat, 2000)
k = big(960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719)
nx = 106
ny = 17
z = zeros(Int8, ny, nx + 1)
for i in 1:nx+1
for j in 1:ny
x = i - 1
y = k + j - 1
f = floor(floor(y / 17.0) * 2^(-17.0 * floor(x) - (floor(y) % 17)) % 2)
if f > 1/2
z[ny + 1 - j, nx + 2 - i] = 0
else
z[ny + 1 - j, nx + 2 - i] = 1
end
end
end
heatmap(z, size=(1300,200))
|
結果:
一瞬でできるな。
(過去のもの)
タッパーの自己言及式をPari/GPとExcelで描いてみる。
さて今回は非線形最小二乗法。
こちらを移植したもの。
using UnityEngine;
using MathNet.Numerics;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Optimization;
using System;
public class MathNETController : MonoBehaviour
{
public GameObject PointsPrefab;
GameObject line;
Vector<double> x;
Vector<double> y;
float scale;
int n;
int count;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
var obj = ObjectiveFunction.NonlinearModel(OptimizeFunction, Gradient, Xdata, Ydata);
var solver = new LevenbergMarquardtMinimizer();
var result = solver.FindMinimum(obj, InitialValue1);
x = Vector<double>.Build.DenseOfArray(Generate.LinearSpaced(1000, 1.0, 15.0));
y = OptimizeFunction(result.MinimizingPoint, x);
line = GameObject.Find("Line");
scale = 50.0f;
n = x.Count;
count = 0;
for (int i = 0; i < Xdata.Count; i++)
{
GameObject point = Instantiate(PointsPrefab);
point.transform.position = new Vector3((float)Xdata[i], Convert.ToSingle(Ydata[i]/scale), 0f);
}
}
// Update is called once per frame
void Update()
{
if (count < n) {
line.transform.position = new Vector3((float)x[count], Convert.ToSingle(y[count] / scale), 0f);
count++;
}
}
Vector<double> Xdata = Vector<double>.Build.DenseOfArray(new double[] {
1.00, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, 10.00,
11.00, 12.00, 13.00, 14.00, 15.00
});
Vector<double> Ydata = Vector<double>.Build.DenseOfArray(new double[] {
16.08, 33.83, 65.80, 97.20, 191.55, 326.20, 386.87, 520.53, 590.03, 651.92,
724.93, 699.56, 689.96, 637.56, 717.41
});
Vector<double> InitialValue1 = Vector<double>.Build.DenseOfArray(new double[] { 100, 10, 1, 1 });
Vector<double> OptimizeFunction(Vector<double> p, Vector<double> x)
{
var y = Vector<double>.Build.Dense(x.Count);
for (int i = 0; i < x.Count; i++)
{
y[i] = p[0] / Math.Pow(1.0 + Math.Exp(p[1] - p[2] * x[i]), 1.0 / p[3]);
}
return y;
}
private Matrix<double> Gradient(Vector<double> p, Vector<double> x)
{
var prime = Matrix<double>.Build.Dense(x.Count, p.Count);
for (int i = 0; i < x.Count; i++)
{
prime[i, 0] = 1.0 / Math.Pow(1.0 + Math.Exp(p[1] - p[2] * x[i]), 1.0 / p[3]);
prime[i, 1] = -p[0] * Math.Exp(p[1] - p[2] * x[i]) /
(p[3] * Math.Pow(1.0 + Math.Exp(p[1] - p[2] * x[i]), 1.0 / p[3] + 1.0));
prime[i, 2] = p[0] * x[i] * Math.Exp(p[1] - p[2] * x[i]) /
(p[3] * Math.Pow(1.0 + Math.Exp(p[1] - p[2] * x[i]), 1.0 / p[3] + 1.0));
prime[i, 3] = Math.Log(1.0 + Math.Exp(p[1] - p[2] * x[i])) * p[0] /
(p[3] * p[3] * Math.Pow(1.0 + Math.Exp(p[1] - p[2] * x[i]), 1.0 / p[3]));
}
return prime;
}
}
|
結果の動画。計算結果を玉が軌跡を描きながら動く…
・NokiaがAIネイティブ6Gを解説
・エッジAIなどの基板についてのeBook
・高速FPCのインピーダンス制御記事
・ヒロセ電機のミリ波同軸コネクタ
・GSAの5G RedCapレポート
・Rohmが機能回路サイト公開
https://www.rohm.co.jp/solution/function
・u-bloxのcm単位精度のGNSS受信機
やはりここはIMAXで観ようとやってきた。
ポストカードとシールもらった。
タイトルが出るところで驚いたというのはDune方式だったということ!これ全然事前情報なかったけれど、別に隠さなくていいんじゃないか。
それはともかく2人とも歌うまいなーと小並感で感心。アリアナ・グランデは当然かもしれないが、シンシア・エリヴォもめちゃくちゃうまい。
ダンスのシーンも多く、しかもラストにはアクションまで。映像美もすごい。
そしてエルファバが気の毒で気の毒で感情移入してしまう。しかし2人に友情が生まれ、そして別れ…のところでは本当に泣ける話に。
とにかくよくできた脚本で本当に面白い。劇団四季のも観たことないし、完全に情報なしで観たのもよかった。
客の入りもかなりよかったし、ヒットするな。
ところで豹?が黒板で計算していたのは特殊相対性理論だった。
・IEEE Microwave Magazineはマイクロ波測定特集
もちろんJoel Dunsmoreさんも寄稿
https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6668
・Qorvo QSPICEにモデリング機能追加
・RohmがLTSpice用の回路モデル公開
https://www.rohm.co.jp/support/ltspice-circuit
・SamsungとKDDIが無線通信向けAIで協業
・TechInsightsもiPhone 16e分解
・TDKのフェライト選択ガイド
サイエンスも量子力学特集していたので買ってみた。
アマゾンリンク:https://amzn.to/4is9Ypl
観測問題に特化しているのが面白い。内容は
【特集:量子力学100年の難問 観測問題】
量子の見えない世界と我々が見ている世界はどのようにつながっているか 谷村省吾氏に聞く
シュレーディンガーの猫は量子AI で救えるか
量子コンピュータにウィグナーの友人の友人役をやらせるのは面白い。
電子はいつ到着したのか
ボーム力学ってもう否定されていたと思ったが復活している?
またもうひとつの特集は古人類学の半世紀で、ルーシー、ホビットの面白い話題が書かれている。
ーーー
・QorvoがKuバンドのビームフォーマーIC発表
・SEMCOが産業向け1206 inch, 220uF, X6S, 4VのMLCC発表
・TDKの新μPOL
・KeysightがAnalogDevicesと共同で6G FR3デモ
・STMが新ワイヤレス内蔵マイコン発表
その他MWC2025年関係
Quectel launches 5G transparent antenna, redefining connectivity aesthetics
Sequans Monarch Powers Coyote Nano 2.0 new generation of Stolen Vehicle Tracker
ようやくiFixitもiPhone 16eを分解した。
なるほどC1チップはモデムで、トランシーバーチップは以下の赤枠のところにあるようだ。
RFモジュールもこれくらい鮮明に撮ってくれるとメーカーがわかったり。
またchip IDやるのかな?
以前こういうのをやってみた。
この時は自分のノートPCのCPUしか使えなかったのでCNNがとても遅い…Google Colabでは無償でもGPU、TPUが使えるので比較してみる。
ランタイムのタイプを変更で選べる。無償だと2つしか選べないが…
まずはおまじない。
!pip install scikit-rf
from google.colab import drive
drive.mount('/content/drive')
path = "/content/drive/MyDrive/Colab Notebooks/"
|
次に設定とモデルの構築。今回はjaxを使う。データは以前作ったもの(上のリンク参照)。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras
data_label = np.load(path + "data_label.npz")
data = data_label["data"].reshape(-1,200,5,1)
label = data_label["label"]
x_train, x_test, y_train, y_test = train_test_split(data, label, test_size=0.3, random_state=0)
# Functional APIでCNNを設定
inputs = keras.Input(shape=(200, 5, 1))
x = keras.layers.Conv2D(64, kernel_size=(10, 2), activation="relu")(inputs)
x = keras.layers.Conv2D(64, kernel_size=(10, 4), activation="relu")(x)
x = keras.layers.Flatten()(x)
outputs = keras.layers.Dense(6)(x)
# モデルの設定
model = keras.Model(inputs=inputs, outputs=outputs)
model.compile(loss = 'mean_squared_error' ,optimizer=keras.optimizers.Adam())
model.summary()
|
ここで学習を10epochやってみると…
batch_size = 32
epochs = 300
keras.utils.set_random_seed(1)
history = model.fit(
x_train,
y_train,
batch_size=batch_size,
verbose=0,
epochs=epochs,
validation_split=0.15,
)
y_pred = model.predict(x_test)
metric = keras.metrics.R2Score()
metric.update_state(y_test, y_pred)
result = metric.result()
print(result)
error = np.abs((y_test - y_pred)/y_test*100)
print(error.mean(axis=0))
|
結果の比較。
種類 | かかった時間 |
CPU | 6分38 秒 |
GPU | 16 秒 |
TPU | 25 秒 |
GPUが爆速だった!これは自分のPCでやるよりずっと速い。こういう検討する時はGoogle Colab使う方向で行こう。
・QualcommがDragonWingシリーズのFWAチップ発表
・EricssonとQualcommが鉄道向け5Gでn101バンド検証
・MWC2025に合わせ各社通信チップ発表
順不同で。
Sequans Unveils Next Generation Cellular IoT Semiconductors at Mobile World Congress 2025
・KeysightとEricssonのpre6G 7-15GHzテストベンチ
・多層多材料3Dプリントアンテナ
・iPhone16eが早くもMLBまで分解
MLB=Main Logic Boardで、廉価版でも2階建て基板になっている。ただもうちょっと全体を見せて欲しいところ。
・iFixitがApple C1チップの道のり解説
これ私もこの歴史ずっと見てきたので感慨深い。
・Nokiaの6G解説
・5G Americasが5GとNTNについてのホワイトペーパー発行
・QualcommとIBMがエッジからクラウドまでの生成AIで協業
京都国立博物館で特集展示 雛まつりと人形、名刀再臨─時代を超える優品たち─、新時代の山城鍛冶―三品派と堀川派―をやっているということで訪問。
明治古都館ではイベントをやっていた。
1Fに特別展示があるがまずは3F, 2Fの一般展示から
3Fで面白かったのは大量の須恵器が観られたこと。国宝の金銅小野毛人墓誌も観られた。
2Fでは言葉が入った絵巻物で、ふっと笑えるものがあり(鳴るものを夢で見た男が…)。耳で食べるも笑える。
あと江戸時代の画家が鳥などを描いたスケッチもすごい。クジャクはいったいどこで見て描いたんだろう。
1Fはすごい仏像をずらり見た後は紺紙経。一字一字を金の文字と銀の塔で描いているものがすごかった。
そしてひな祭りと人形。ぱっと華やかな部屋になった。屋敷を模した雛飾りに驚く…これ今買ったらとんでもない値段になりそう。
そして名刀の数々。どれもすごいが、驚いたのが坂本龍馬の愛刀があったこと。
しかも別室に暗殺しようとした人の刀も。
これ全部観て700円でとてもお得。
最近のコメント