« 2024年10月 | トップページ | 2024年12月 »

2024年11月

2024年11月30日 (土)

「アングリースクワッド 公務員と7人の詐欺師」を観てきた。スカッとするお話で面白かった!内野聖陽さんが全編顔芸ですごかったし、岡田将生くんの悪そうな顔も小澤征悦さんの悪役もよかった。で途中で数えてあれ?と思ったり、最後にえ?と思ったり。さすがはカメ止めの上田監督。

有名俳優さんが惜しげもなく使われていて、上田監督もすごくなった(上から目線で済みません…)とまず最初に思ったり。

あとパルムが食べたくなる。

20241125-123731

とにかく内野聖陽さん、ずっと顔芸しててめちゃくちゃ面白かった。岡田将生くんも、完全な二枚目よりはこういうちょっと悪いところがある役は合ってると思った。

でとにかく小澤征悦さんの悪役と吹越満さんの小悪党が悪くて悪くて、これは最後にどうやってだます?と思ったら大ピンチでドキドキ。

そこはさすがの上田監督であっと驚く展開でスカッとします。

最後にえ?というところがあるんですが、あれはいるのかな…本当の最後だけでよかった気も…でもあれで逆にスカッとする人もいるだろうからありなのかな。

まあとにかく面白いのでお勧めです。

2024年11月29日 (金)

線表現の可能性@国立国際美術館を観てきた。子供が描いたような線、緻密な線(ジョナサン・ボロフスキーと池田龍雄がよかった)、カラフルな線、立体的な線(あれどうやってバランス?)など様々で面白かった。彼女の肖像も一緒に観られたがこれも興味深かった。

久しぶりに国立国際美術館へ。線表現の可能性を観に来た。

20241120-125540

 

20241120-125542

20241120-125911

写真撮影はOKでした。子供の落書きのような線から始まり、緻密だったり(ジョナサン・ボロフスキーのノートの切れ端に書いた線や、池田龍雄の化物の系譜が気持ち悪くてよかった)、カラフルなもの(ポスターにもなってるベルナール・フリズのガルプなど)、立体的なもの(植松奎二の置ー浮くかたちがどうやってバランスを取っていたのか全然分からん…)など様々で面白かった。
後半は2020年代に亡くなった方々の作品で、イリヤ・カバコフの天使と出会う方法がよかった。

その次はコレクション1 彼女の肖像へ。

20241120-134710

岡本信治郎の版画集『ベティ・ブープの国』や小沢剛のベジタブル・ウェポンが面白かった。そして谷原菜摘子のSADOにはおおっと思った。人魚か。

ところで来ていたのはほぼ外国の方々だった。さすが国際美術館。

高周波・RFニュース 2024年11月29日 NuvotronicsのPolystrataがQorvoのGaNパワーアンプに採用、WürthがBalunのラインアップ拡張、MinewSemiのモジュールにNordicのnRF54Lが採用、AIチップにPCIe 7.0が必要な理由、SIJの特集はThe Road from 1 Gbps-NRZ to 224 Gbps-PAM4

・NuvotronicsのPolystrataがQorvoのGaNパワーアンプに採用

Nuvotronics Uses PolyStrata® Technology to Develop High-Performance Package for Qorvo's GaN Amplifiers

202411291

・WürthがBalunのラインアップ拡張

Würth Elektronik Improves and Expands its Balun Series

202411292

・MinewSemiのモジュールにNordicのnRF54Lが採用

MinewSemi’s ME54BS01 module integrates nRF54L15 SoC to provide developers unrivalled performance and security in wireless connectivity applications

202411293

・AIチップにPCIe 7.0が必要な理由

Why AI chips need PCIe 7.0 IP interconnects

202411294

・Signal Integrity Journal(SIJ)の特集はThe Road from 1 Gbps-NRZ to 224 Gbps-PAM4

SIJ 2024 Issue: The Road from 1 Gbps-NRZ to 224 Gbps-PAM4

・GSAレポート

Chipsets November-2024

・3GPP Highlights Issue 09

3GPP Highlights

・QuectelのRedCap ウェビナー

https://content.rcrwireless.com/will-redcap-be-a-boon-to-5g-and-iot-editorial-report

 

2024年11月28日 (木)

Excelで正規表現が使えるようになっていた。REGEXTEST関数などが使える。それなら一回見てみたかった正規表現だけで素数判定をするのをやってみる。1セルに=NOT(REGEXTEST(REPT("1",A2),"^1?$|^(11+?)\1+$")))などと入れると素数判定できる。

遅ればせながら、Excelに正規表現が使える関数が追加されたことを知った。

「Excel」に正規表現の新関数が3つ導入へ ~「XLOOKUP」「XMATCH」にも対応予定

REGEXTEST 、REGEXEXTRACTREGEXREPLACEが使えるようだ。

ちょうどPython(共通テスト日本語プログラム変換)とJavaScript(見せ算)で正規表現に凝っているのでExcelでもやってみよう。

題材は前からやってみたかったこれ、

正規表現で素数判定

をやってみよう。 Excelはデリミタいらないっぽいので

"^1?$|^(11+?)\1+$"

とすればいい。1を繰り返すのはREPT("1",A2)で、結果をひっくり返すのはNOT関数。

まとめて1セルに

=NOT(REGEXTEST(REPT("1",A2),"^1?$|^(11+?)\1+$"))

等と入れる。結果はこんな感じ。TRUEに色を付けている。

Regextprime

本当だ!ちゃんと判定できている。すごいことを考える人がいるなあ。

 

続きを読む "Excelで正規表現が使えるようになっていた。REGEXTEST関数などが使える。それなら一回見てみたかった正規表現だけで素数判定をするのをやってみる。1セルに=NOT(REGEXTEST(REPT("1",A2),"^1?$|^(11+?)\1+$")))などと入れると素数判定できる。" »

2024年11月27日 (水)

M1決勝でのさや香のネタと新ネタを含んだ見せ算、8見せ1や3見せ2見せ8にも対応した新・見せ算計算機をJavaScriptの正規表現を使って作った。

カシオの高精度計算サイトに見せ算を計算できるものを作っている。見せ算(さや香のネタ)

ただこれは応用編や大学院レベルはできないし、コメントで8見せ1や3見せ2見せ8というのが新たにできたと知った。
ちょうどこの前から正規表現に凝っている(Pythonで共通テストの日本語プログラムを実行するのに使った)ので、JavaScriptを使ってhtmlでさや香の見せ算を計算できるものを作った。

こちらが計算機。

misezan_calculator.html

こんな感じで計算できます。

Misezan001

説明:

使い方:「見せ」はここでは👀の記号で表します。ボタンを押すと入力されます。例えば1👀1を入力して計算、と書かれたボタンを押すと眼(答え)と説明がでます。

👩(優しい女性)のボタンを押すと👩が入力されます。100👩のように使うと100人の中に優しい女性がいることを表します。

1👀2, 6👀9, 2👀5, 1👀100, 1👀100👩, 8👀1, 3👀2👀8などを試してください。

 

ソースコードはhtmlの中に直接埋め込んでいる(<script></script>の間)のでそちらを参照ですが、こちらにも書いておきます。

適当に作り始めたのでとても冗長になった…


<div>
    <p><h1>新・見せ算計算機</h1></p>
    <label for = "input">入力:</label>
    <input type = "text" required id = "input">
    <p></p>
    <label for = "answer">眼:</label>
    <input type = "text" id="answer" disabled>
    <p id = "reason">解説</p>
    <table>
        <tr>
        <td><button><input type = "button" id = "gan" value = "👀(見せ)"></td>
        <td><button><input type = "button" id = "beauty" value = "👩(優しい女性)"></button></td>
        <td><button><input type = "button" id = "calc" value = "計算"></button></td>
        <td><button><input type = "button" id = "clear" value = "クリア"></button></td>        
        </tr>
    </table>
    <p>使い方:「見せ」はここでは👀の記号で表します。ボタンを押すと入力されます。例えば1👀1を入力して計算、と書かれたボタンを押すと眼(答え)と説明がでます。</p>
    <p>👩(優しい女性)のボタンを押すと👩が入力されます。100👩のように使うと100人の中に優しい女性がいることを表します。</p>
    <p>1👀2, 6👀9, 2👀5, 1👀100, 1👀100👩, 8👀1, 3👀2👀8などを試してください。</p>
</div>
<script>
"use strict";
const input = document.getElementById("input");
const answer = document.getElementById("answer");
const calc = document.getElementById("calc");
const gan = document.getElementById("gan");
const clear = document.getElementById("clear");
const beauty = document.getElementById("beauty");
const reason = document.getElementById("reason");

gan.addEventListener('click', ()=>{input.value += "👀"; input.focus();});
beauty.addEventListener('click', ()=>{input.value += "👩"; input.focus();});
clear.addEventListener('click', ()=>{input.value =""; input.focus();});
calc.addEventListener('click', mise);

function mise() {
    const re = /(\d+)(👩*)👀(\d+)(👩*)👀*(\d*)/u;
    const str = input.value;
    const num = str.match(re);
    let ans;
    if (num[2] ==='' && num[4] ==='' && num[5] === '') {
        ans = two_items(num[1],num[3]);
    } else if ((num[2] ==='👩' || num[4] ==='👩') && num[5] === '') {
        ans = extended_two_items(num[1],num[3], num[2], num[4]);
    } else if (num[1] === "3" && num[2] ==='' && num[3] === '2' && num[4] ==='' && num[5] === '8') {
        ans = three_items();
    } else {
        ans =  [undefined, "さや香のネタにないから"];
    }

    answer.value = ans[0];
    reason.textContent = ans[1];
}

function two_items(a, b) {
    let ans = "";
    // 同じ数字の場合は0
    if (a === b) {
        return  ["0","同じ数字だと恥ずかしくて立ち去るため"];
    }
    // 6と9, 2と5の処理
    let first = "";
    let last = "";
    let delim = "";
    if (a.length === b.length && /^[69]+$/.test(a) && /^[69]+$/.test(b) ) {
        let matched = false;
        for (let i = 0; i < a.length; i++) {
            if ((a[i] === "6" && b[i] === "9") ||(a[i] === "9" && b[i] === "6")){
                first += "1";
                last += "1";
                matched = true;
            } else {
                matched = false;
                break;
            }
        }
        if (matched) {
            return [first + last, "6と9が「俺か?」と近づいて行って1人と1人になるから"];
        }
    }
    if (a.length === b.length && /^[25]+$/.test(a) && /^[25]+$/.test(b) ) {
        let matched = false;
        for (let i = 0; i < a.length; i++) {
            if ((a[i] === "2" && b[i] === "5") ||(a[i] === "5" && b[i] === "2")){
                first += "1";
                delim += "."
                last += "1";
                matched = true;
            } else {
                matched = false;
                break;
            }
        }
        if (matched) {
            return [first + delim + last, "2と5が「俺か?」と近づいて行って1人と1人になるがあまりに違うので5が携帯(.)を落とすから"];
        }
    }
    if (a === "1" && Number(b) >=100) {
        return [String(Number(b)-17), "1は大群で逃げられないと思って腹くくって、うおーって叫びながらバーって100に突っ込んでいって、頑張って17人倒すから"]
    }
    if (b === "1" && Number(a) >=100) {
        return [String(Number(a)-17), "1は大群で逃げられないと思って腹くくって、うおーって叫びながらバーって100に突っ込んでいって、頑張って17人倒すから"]
    }
    if ((a === "8" && b ==="1") ||(a === "1" && b ==="8")  ) {
        return ["%", "1は自分が串で8が団子と思って刺しに行き、8は嫌がって避けるがつなぎ目に刺さって分裂するから"]
    }
   
    if (Number(a) > Number(b)) {
        return [a, "小さいものが大きいものを見ると怖いから小さい方が立ち去る"];
    } else {
        return [b, "小さいものが大きいものを見ると怖いから小さい方が立ち去る"];
    }

    return [undefined, "さや香のネタにないから"];

}

function extended_two_items(a, b, ex1, ex2) {
    let ans = ""
    if (a === "1" && Number(b) >=100 && ex2 ==="👩") {
        return [String(Number(b)-17+1), "1は大群で逃げられないと思って腹くくって、うおーって叫びながらバーって大群に突っ込んでいって、頑張って17人倒すが自分も倒れ中に優しい女性が1人いて介抱され、その2人が恋に落ちて後々結婚して子供が1人生まれてさらにまた1増えるから"]
    }
    if (b === "1" && Number(a) >=100 && ex1 ==="👩") {
        return [String(Number(a)-17+1), "1は大群で逃げられないと思って腹くくって、うおーって叫びながらバーって大群に突っ込んでいって、頑張って17人倒すが自分も倒れ中に優しい女性が1人いて介抱され、その2人が恋に落ちて後々結婚して子供が1人生まれてさらにまた1増えるから"]
    }
    return [undefined, "さや香のネタにないから"];

}

function three_items() {
    return ["140", "3と2と8はとても仲が良く肩を組み合い、俺ら(328)三ツ矢サイダーやな、という。三ツ矢サイダーは140周年だから。"]
}

高周波・RFニュース 2024年11月27日 Ericsson Mobility Report Nov.2024発行、NordicのnRF54L15がRaytacモジュールに搭載、SIMComの5G RedCapモジュール、北京の清華大学でLevel4の自律ネットワークが稼働、AmpleonのDoherty RF Power Transistor、Rohmのシリコンキャパシタ

・Ericsson Mobility Report Nov.2024発行
  2030年までに5G加入者は63億人と予想。

Ericsson Mobility Report: early movers pursue performance-based business models

202411271

・NordicのnRF54L15がRaytacモジュールに搭載

User-friendly Nordic nRF54L15-powered module delivers developers a cost-effective and time-saving solution ensuring shorter project life cycles

202411272

・SIMComの5G RedCapモジュール

Wireless Modules Tout Speed, Latency, and Reliability

202411273

・北京の清華大学でLevel4の自律ネットワークが稼働

Exclusive Op-Ed: World’s first Level 4 autonomous network makes comms history

・AmpleonのDoherty RF Power Transistor

Ampleon Introduces Advanced Doherty RF Power Transistor for 5G mMIMO Applications from 3400 to 3800 MHz

・ロームのシリコンキャパシタ

コンデンサは新たな領域へ シリコンキャパシタ市場拡大の理由【前編】

2024年11月26日 (火)

数理科学 2024年12月号 使う数学,使える数学「数学は役に立つのか?」へのヒントを買った。課税があると富の集中が緩和される話、ジャイロイド格子、Mackay-Terrones構造、血液の流れをNavier-Stokes方程式で解析、天気予報のデータ同化など知らなかったことがたくさん。

面白そうな特集なので買ってきました。

20241125-091737

アマゾンリンク:https://amzn.to/4fGTf0O

内容と一言コメント。知らないことが多かった。勉強になる。

・使いつくしたい数学 小谷元子

 「コンタクト」、素数を送っていたのか…完全に忘れていた。

・数理モデルで見る世界の分断 西浦廉政

 課税があると富の集中が緩和される話始めて知った。

・線形代数 ~ 変換を計算する数学とその応用 ~ 新井仁之

 特異値分解で次元圧縮する話は線形代数の教科書でも最近は取り上げられているらしい。

・物理と数学 ~ 代数学と物理学の関係 ~ 川村嘉春

 リー群、学生時代勉強したのに今ではほぼ忘れている…

・化学・材料と数学 ~ 物質構造の数学 ~ 内藤久資

 ジャイロイド格子、Mackay-Terrones構造は初めて知った。

・医療と数学 ~ 血液の流れを調べるための数学 ~ 水藤 寛

 血液の流れがNavier-Stokes方程式、血管の曲がりがフレネー‐セレの式で表されるとは!

・天気予報と数学 ~ 現象を記述し予測する数理科学 ~ 三好建正

 データ同化、誤差の統計数理のようなことをやっているとは知らなかった。

・統計と数学 ~ 積分幾何学と確率場の幾何 ~ 栗木 哲

 確率場の幾何も初めて聞いた。


・AIと数学 ~ 深層学習と幾何学の交わり ~ 福水健次
 幾何学的深層学習も初めて知った。

2024年11月25日 (月)

マン・カインド(藤井太洋さん)を読んだ。衝撃的に面白い!公正戦、光学迷彩を持つ他脚ローダー、曲射弾、人体通信、CRISPR/Cas9、様々なアルゴリズム・数学などが興味を引き、全く予測できないストーリー(マン・カインドの意味が…)もう10年後には起こっても不思議ではないな…

藤井太洋さんはジーン・マッパーを読んであまりの面白さにずっと作品を追っていて、最近だとワン・モア・ヌークが一番かなと思っていた。

しかし順位が入れ替わったかも。このマン・カインドめちゃくちゃ面白かった。

20241111-161621

アマゾンリンク:https://amzn.to/48HbVe9

あらすじは「2045年、国際独立市テラ・アマソナスの指導者チェリー・イグナシオが、軍事企業〈グッドフェローズ〉の捕虜を銃殺する。この虐殺をレポートしようとした迫田城兵は事実確認プラットフォームにより配信を拒否されてしまう。果たして人類に何が起こっているのか 」というもの。

なぜ配信を拒否されたのか、からは想像できない展開。身体能力に優れ赤外線が見える兵士、数学の能力がとてつもないベンチャーと一体どう結びつくのか、全く飽きさせない。この前、シビル・ウォーを観てきたばかりなので、フェイクニュースでアメリカが内戦に入っていたのもリアル。そこから双方が約束を守る公正戦ができたのも。

でてくるテクノロジーも光学迷彩を持つ他脚ローダー<マスチフ>、曲射弾<ステア・ビュレット>、CRISPR/Cas9、様々なアルゴリズム(遺伝的アルゴリズム、ピアソン重合法、潜ディリクレ分布割り当てなどなど)・数学(指を折って指数・対数計算できたり)などが興味を引く。

これ以上はネタバレになるので一切書かない(知っていたら衝撃を受けない)ですが、マン・カインドの意味がそういう…

とにかく面白いのでお勧め。

第53回星雲賞日本長編部門受賞も納得。

高周波・RFニュース 2024年11月25日 5G AmericasがOpen RANについてのホワイトペーパー発行、iFixitがMac miniの基板上の部品特定、Macbook Proの分解、IEEE EPEPSでMegtron 6と8の誘電率評価、NYU Wirelessが6Gチャネル伝搬データ、6Gは過去のGの失敗から学べるかの記事

・ 5G AmericasがOpen RANについてのホワイトペーパー発行

5G Americas Explores New Progress and Innovation in Open RAN

202411251

・iFixitがMac miniの基板上の部品特定、Macbook Proの分解

Wi-FiモジュールはUSI。

Mac mini 2024 Chip ID

202411252

MacBook Pro M4 Teardown: What’s Inside and What’s Fixable?

202411254

・IEEE EPEPSでMegtron 6と8の誘電率評価

Megtron 6 and 8 Characterization Methodology

202411253

・NYU Wirelessが6Gチャネル伝搬データ

NYU Wireless releases 6G channel propagation data

・6Gは過去のGの失敗から学べるか

6G: Learning from the mistakes of past Gs

2024年11月24日 (日)

3社のすき焼きを食べ比べる(全て肉2倍で)。吉野家の牛すき鍋膳はとても甘い。肉質はまあまあ。すき家の牛すき鍋定食はとにかく肉がとても多い。甘くはない。やよい軒のすき焼き定食は肉質は最もよく、味もバランスが取れてるが肉の量は一番少ない。

まずは吉野家の牛すき鍋膳。

びっくりするほど甘い。前こんなのだっけ…肉はまあまあ。豆腐が入っているのがいい。

20241109-141733 20241109-141736

すき家の牛すき鍋定食。

吉野家と違って甘味は控えめ。とにかく肉がとても多い。食べても食べても肉。ちょっとびっくりするほど。写真では白菜に隠れてるが。

しらたきが入っているのはいい。

20241110-110707 20241110-111000

最期はやよい軒のすき焼き定食。

値段も一番高いので肉質は最もよく、味もバランスが取れてる。豆腐もしらたきもあり。

ただ肉がこの中で一番少ない。本当に少なくて肉2倍にしなかったら数切れになるのかなと。

まあご飯お替り自由で漬物も出汁もあるのでおかずには困らないが…

20241111-135640 20241111-135645

2024年11月23日 (土)

映画「ドリーム・シナリオ」を観てきた。ニコラス・ケイジが人々の夢の中に現れるという「This Man」から発想したような話だが、最初はいるだけがだんだんエスカレートしていき(夢ですが)現実でまで迫害を受けるのが恐ろしい。非常に不思議な終盤で予測全くできないものだった。

公開初日に観てきました。

20241122-130739

This Manというこれと全く同様に多くの人の夢に現れるという現象がありましたが(これはマーケティングの話だった)、

This Man

そこから発想を得たであろう話で、進化生物学(アリのコロニー)の研究をしている老教授のニコラス・ケイジが学生、娘や会ったこともない人々の夢の中に現れる。

最初はただ何もせず立っているだけだったが、どんどんエスカレートしていき、やがて、というもの。

だんだん現実のニコラス・ケイジが追い詰められていくのが恐ろしい。

どうやって落ちをつけるんだろうと思ったら全く予想もしてない不思議なことに。ドリーム・シナリオのタイトルの伏線回収もええ…という感じ。

一応、なぜ夢の中に現れるのかは技術的に判明したということでいいのだろうか?

ところで劇中でニコラス・ケイジが読んでいた本は実在の「Why Zebras Don't Get Ulcers?」シマウマはなぜ群れるか?ではなくてシマウマはなぜ潰瘍にならないか?というタイトルでストレスに関するもの。そう聞くとなるほどストレスかとか思う。

Dream01

アマゾンリンク:

https://amzn.to/3ZkcFm8

そしてトーキング・ヘッズはこの方たち。

2024年11月22日 (金)

高周波・RFニュース 11月22日 Qualcommの6Gスペクトルウェビナー、R&Sの5G-Advancedウェビナー、5Gミリ波の価値が急落という記事、HuaweiとChina Unionの5G-Advancedネットワーク、ミニサーキットのミリ波LTCCフィルタ、NTTドコモの6GのAI検証実験

・Qualcommの6Gスペクトルウェビナー、Rohde&Schwarzの5G Advancedウェビナー

6G Spectrum

What's up with 5G-Advanced?

202411221

・5Gミリ波の価値が急落という記事

The plummeting value of 5G mmWave spectrum

202411222

・HuaweiとChina Unionの5G-Advancedネットワーク

China Unicom Beijing and Huawei Announce World's First Large-Scale Integrated 5G-Advanced Intelligent Network

202411223

・ミニサーキットのミリ波LTCCフィルタ

Mini-Circuits Introduces New LTCC Low Pass Filters with Passband Frequencies up to 67 GHz

202411224

・NTTドコモの6GのAI検証実験

6Gに向け、AIを活用した無線インターフェース実証実験において伝送効率の改善を確認
-国内初、4.8GHz帯を利用し屋内静止・移動環境においてスループット最大18%向上を実現-

202411225

石村嘉成展 ~いのちの色たち~@兵庫県立美術館を観てきた。すごかった…生き生きとした表情の動物たちがヴィヴィッドな色違いで描かれ心が奪われる。作品の数やその大きさにも圧倒される。自閉症と診断された画家さんの作品ですがそんなことは全く関係なくただ感動。

石岡瑛子展の後は石村嘉成展へ。同じ兵庫県立美術館でやってます。

20241112-120218

こちらもすごかった。こんなに生き生きとした動物の絵画を初めてみた。色違いもとてもヴィヴィッドでいい。

20241112-124614

20241112-125016 20241112-125048

この壁一面の絵(パノラマ撮影しているので曲がってますが実際はまっすぐ)。

20241112-124900

20241112-125717

 

20241112-125722

絵だけでなく版画も。

20241112-125416

20241112-125336

20241112-125824

本当にすごかった。感動した。今回、2つの展示会見たけどどちらもよかった。これはお勧め。

片方みると片方100円引きでした。

 

 

2024年11月21日 (木)

令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(3) 試験対策として非線形方程式の数値解法である二分法とはさみうち法を書いてみる。

今回は非線形方程式の数値解法。二分法とはさみうち法が簡単なのでやってみよう。

この辺りを参考に。

https://www1.doshisha.ac.jp/~bukka/lecture/computer/resume/chap08.pdf

解くのはy=x^2-2。なので範囲を正にすれば答えは√2になるはず。

まずは二分法から。

日本語プログラム


関数 func(x) を定義する:
⎿ x**2 - 2を返す

a = 0.0
b = 2.0

b-a > 0.0001の間繰り返す:
| c = (a + b) / 2
| もしfunc(a) * func(c) < 0 ならば:
| ⎿ b = c
| そうでなければ:
⎿ ⎿ a = c
表示する(c)

Python。


def func(x) :
    return x**2 - 2

a = 0.0
b = 2.0

while b-a > 0.0001:
    c = (a + b) / 2
    if func(a) * func(c) < 0 :
        b = c
    else :
        a = c
print(c)

実行するとこうなった。だいたい√2。

1.41424560546875

次ははさみうち法。

日本語プログラム。


関数 func(x) を定義する:
⎿ x**2 - 2を返す

a = 0.0
b = 2.0

b-a > 0.0001の間繰り返す:
| c = (a*func(b) - b*func(a)) / (func(b) - func(a))
| もしfunc(a) * func(c) < 0 ならば:
| ⎿ b = c
| そうでなければ:
⎿ ⎿ a = c
表示する(c)

Python。


def func(x) :
    return x**2 - 2

a = 0.0
b = 2.0

while b-a > 0.0001:
    c = (a*func(b) - b*func(a)) / (func(b) - func(a))
    if func(a) * func(c) < 0 :
        b = c
    else :
        a = c
print(c)

実行すると 

1.41424560546875

が得られた。

さて次は何をやるかな…

 

 

 

 

石岡瑛子 I デザイン@兵庫県立美術館を観てきた。資生堂のポスターは何となく知っていたがPARCOのポスターすごい数を手掛けられ、また角川書店の表紙や理科の教科書!マイルスデイヴィスのジャケット、地獄の黙示録のポスターなどもありもうすごいの一言。観てる女性率99%でした。

ほとんど予備知識なく観てきました。

20241112-120019 20241112-120241 20241112-120254 20241112-120703

資生堂のポスター(前田美波里さんの)は何となく知っていましたが、PARCOのポスター、とんでもない数を手掛けられていてまずそこで驚く。角川書店の本の表紙も手掛けられていてさらに驚く。その他にも、

(前の)万博。

20241112-122753

 

20241112-122829

理科の教科書!

20241112-122946

20241112-123009

マイルス・デイヴィスのジャケット。

20241112-123644

地獄の黙示録やドラキュラのポスターなどなど、ものすごい数でもうただただ圧倒された。

20241112-123853

すごかったのですが、見てる人ほぼほぼ女性だけでした。男は私だけだったんじゃないかな。これは男性も観た方がいいです。

2024年11月20日 (水)

高周波・RFニュース 2024年11月20日 SEMCOの1005 X7S 2.2μF 10V車載MLCC、TDKの車載PoC用積層インダクタ、Qualcomm Investor DayでOn-Device AIで車載、IoTに注力と発表、NordicのnRF64Lが加賀FEIの世界最小Bluetoothモジュールに採用、u-blox、Telitの新商品など

・SEMCOの1005 X7S 2.2μF 10V車載MLCC

Samsung Electro-Mechanics Launches the World’s First 0402 Inch Automotive MLCC X7S 2.2μF 10V.

202411201

・TDKの車載PoC用積層インダクタ

インダクタ: 車載PoC用積層インダクタの開発と量産

202411202

・Qualcomm Investor DayでOn-Device AIで車載、IoTに注力と発表

Qualcomm Sets New Growth Targets, Showcasing Company’s Opportunity as On-Device AI Accelerates Demand for its Technologies

202411203

・NordicのnRF64Lが加賀FEIの世界最小Bluetoothモジュールに採用

Nordic Semiconductor’s next generation nRF54L15 SoC to power ‘world’s smallest’ Bluetooth 6.0 compliant module

・その他

u-blox launches its first LTE Cat 1bis module with Wireless Logic’s embedded Conexa SIM for flexible and reliable connectivity management

Telit Cinterion SE868K5-DR Enables Untethered Dead Reckoning for IoT Positioning Applications Where GPS and GNSS is Unavailable

What’s next for 5G? 3GPP Release 18, 19 and beyond

ITU Looks Ahead to the AI Age and Optical Networks towards 2030

2024年11月19日 (火)

令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(2) 試験対策として試作問題にあった最小交換硬貨枚数の問題と、一番簡単なバブルソートを書いてみる。

さて前回は変換コードを作ったので、次は試作問題にあった最小交換硬貨枚数の問題。
https://www.dnc.ac.jp/kyotsu/shiken_jouhou/r7/r7_kentoujoukyou/r7mondai.html

これを実行するには仕様にはない関数定義が必要で、それは変換コードに追加している。

日本語プログラムは


関数 枚数(kingaku) を定義する:
| Kouka = [1,5,10,50,100]
| maisu = 0
| nokori = kingaku
| iを4から0まで1ずつ減らしながら繰り返す:
| | maisu = maisu + nokori ÷ Kouka[i]
| ⎿ nokori = nokori % Kouka[i]
⎿ maisuを返す

kakaku = 46
min_maisu = 100
tsuri を0から99まで1ずつ増やしながら繰り返す:
|shiharai = kakaku + tsuri
|maisu = 枚数(shiharai) + 枚数(tsuri)
|もしmaisu < min_maisu ならば:
⎿⎿ min_maisu = maisu
表示する(min_maisu)

となってこれをPythonに直すと


def 枚数(kingaku) :
    Kouka = [1,5,10,50,100]
    maisu = 0
    nokori = kingaku
    for i in reversed(range(0, 4+1 , 1)):
        maisu =   maisu   +   nokori // Kouka[i]  
        nokori =   nokori % Kouka[i]
    return maisu

kakaku = 46
min_maisu = 100
for tsuri  in range(0, 99+1 , 1):
    shiharai = kakaku + tsuri
    maisu = 枚数(shiharai) + 枚数(tsuri)  
    if maisu < min_maisu :
        min_maisu = maisu    
print(min_maisu)

となり、答えも3と出た。

次は試験に出そうなアルゴリズムを書いてみる。

まあバブルソートとかかな…

これを参考に。

https://www.programiz.com/dsa/bubble-sort

では日本語プログラムは

Data = [-2, 45, 0, 11, -9]
kazu=要素数(Data)
iを0からkazu-1まで1ずつ増やしながら繰り返す:
| jを0からkazu-i-2まで1ずつ増やしながら繰り返す:
| | もしData[j] > Data[j + 1]ならば:
| | | temp = Data[j]
| | | Data[j] = Data[j + 1]
⎿ ⎿ ⎿ Data[j + 1] = temp
表示する(Data)

これをPythonに変換して実行すると、


Data = [-2, 45, 0, 11, -9]
kazu=len(Data)
for i in range(0, kazu-1+1 , 1):
    for j in range(0, kazu-i-2+1 , 1):
        if Data[j] > Data[j + 1]:
            temp = Data[j]
            Data[j] = Data[j + 1]
            Data[j + 1] = temp
print(Data)

[-9, -2, 0, 11, 45]

となった。次は何かな。

令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(1)。日本語プログラム言語はほぼPythonなので、reモジュールを使って正規表現で置換しているだけ。defとappendは仕様に付け加えておいた。

令和7年から共通テストに情報が付け加わわるということで、どんな問題になるかが公開されている。

令和7年度試験の問題作成の方向性、試作問題等

なるほど。プログラム言語はほとんどPythonだが日本語に直されている。例に上がっていたのはこんな感じ。

Data=[3,18,29,33,48,52,62,77,89,97]
kazu=要素数(Data)
表示する("0~99の数字を入力してください")
atai=【外部からの入力】
hidari=0 , migi=kazu-1
owari=0
hidari <= migi and owari==0 の間繰り返す:
| aida=(hidari+migi)÷2 
| もしData[aida]==atai ならば:
| | 表示する(atai,"は",aida,"番目にありました")
| | owari=1
| そうでなくもしData[aida]<atai ならば:
| | hidari=aida+1
| そうでなければ:
⎿ ⎿ migi=aida-1
もしowari==0 ならば:
⎿ 表示する(atai,"は見つかりませんでした")
表示する("添字"," ","要素")
iを0からkazu-1まで1ずつ増やしながら繰り返す:
⎿ 表示する(i," ",Data[i])

ほぼPythonなのだが微妙に違う(rangeとか一行に複数文書くとか)。

でもこれならPythonのreモジュールで正規表現を使って置き換えていったらPythonには書き直せそう。

やってみた。

ダウンロード - dncl2python.py

※バグがあったので11/19 9:13に再アップロード

これを使えば上のプログラムは、


Data=[3,18,29,33,48,52,62,77,89,97]
kazu=len(Data)
print("0~99の数字を入力してください")
atai=int(input())
hidari = 0
migi = kazu-1
owari=0
while hidari <= migi and owari==0 :
    aida=(hidari+migi)//2 
    if Data[aida]==atai :
        print(atai,"は",aida,"番目にありました")
        owari=1
    elif Data[aida]<atai :
        hidari=aida+1
    else :
        migi=aida-1
if owari==0 :
    print(atai,"は見つかりませんでした")
print("添字"," ","要素")
for i in range(0, kazu-1+1 , 1):
    print(i," ",Data[i])

のように変換される。保存と同時にexecを使って実行している。※もともとコメント#演算子//は商の整数値を返す、がついていたがreturnに変換されてしまう(コメント処理してない…)ので削除

DCNL2Pythonのコードはこちら。


#  DNCL2Python.py
#   令和7年度大学入試共通テスト
#  情報で使われる日本語プログラム言語を
#  Pythonに変換し実行する。
#  2024/11/19   ver.1.2  
import re
import unicodedata
import tkinter as tk
import tkinter.filedialog as filedialog

#ファイルダイアログでプログラムが書かれているテキストファイル(.txt)を選択し開く
tk.Tk().withdraw()
filepath = filedialog.askopenfilename(filetypes=[("テキストファイル", "*.txt")])
with open(filepath, "r") as f:
    dcnl = f.read()

#乱数が使われる場合はimport
rd = re.findall(r'乱数', dcnl)
if rd != []:
    dcnl = 'import random\n\n' + dcnl

#制御範囲を表す|と⎿をインデント(空白4つ)に変換
dcnl.replace(' ', ' ')
dcnl = re.sub(r' **| **','    ', dcnl)

#半角に直せるものは直しておく
dcnl = unicodedata.normalize('NFKC', dcnl)

#単純に置換だけでいけるものは置換
dcnl = re.sub(r'そうでなくもし', 'elif ', dcnl)
dcnl = re.sub(r'もし', 'if ', dcnl)
dcnl = re.sub(r'ならば', '', dcnl)
dcnl = re.sub(r'そうでなければ', 'else ', dcnl)
dcnl = re.sub(r'表示する', 'print', dcnl)
dcnl = re.sub(r'【外部からの入力】', 'int(input())', dcnl)
dcnl = re.sub(r'要素数', 'len', dcnl)
dcnl = re.sub(r'整数\(', r'int(', dcnl)
dcnl = re.sub(r'乱数\(', r'random.random(', dcnl)
dcnl = re.sub(r'÷', '//', dcnl)
dcnl = re.sub(r'関数', 'def', dcnl)
dcnl = re.sub(r'を定義する', '', dcnl)

#一行に代入文が書かれている場合2行に分ける。
dcnl = re.sub(r'(.+)=(.+),( *)(.+)=(.+)',r'\1=\2\n\4=\5', dcnl)

#whileは語順を変えないといけない
dcnl = re.sub(r'( *)(.+)の間繰り返す', r'\1while \2', dcnl)

#forも語順を変えないといけない
dcnl = re.sub(r'( *)(.+)(.+)から(.+)まで(.+)ずつ増やしながら繰り返す', r'\1for \2 in range(\3, \4+1, \5)', dcnl)
dcnl = re.sub(r'( *)(.+)(.+)から(.+)まで(.+)ずつ減らしながら繰り返す', r'\1for \2 in reversed(range(\4, \3+1, \5))', dcnl)

#returnも語順を変えないといけない
dcnl = re.sub(r'( *)(.+)を返す', r'\1return \2', dcnl)

#appendも
dcnl = re.sub(r'に(.+)を付け加える', r'.append(\1)', dcnl)

#.txtを.pyに変えて保存
with open(filepath.replace('.txt', '.py'), 'w') as f:
    f.write(dcnl + '\n')

#Pythonのコードとして実行
exec(dcnl)

これを使ってちょっといろいろ想定問題を作ってみよう(続く?)

 

2024年11月18日 (月)

高周波・RFニュース 2024年11月18日 Microwave JournalはRF-MEMS FEM、Ericsson ConsumerLabの5G differentiated connectivityレポート,iFixitがPS5 Proを分解、Nordicの新nRF64Lシリーズ、u-bloxのtri-radioモジュール、Quectelの3in1アンテナ、GSAの5G年次レビュー

・Microwave JournalはRF-MEMS FEM

RF-MEMSには相当酷い目にあったので何も信用できない…

5G/6G & IoT

202411181

RF GaN on Siでパワーアンプ、の記事もあります。

・Ericsson ConsumerLabの5G differentiated connectivityレポート

Ericsson ConsumerLab: Rising use of Generative AI Apps boosts consumer interest in differentiated connectivity

202411182

・,iFixitがPS5 Proを分解

基板はとてもシンプル。Chip同定は進行中とのこと。

PS5 Pro Teardown: Is a Battery Hatch This Year’s Hottest Repair Trend?

202411183

・Nordicの新nRF64Lシリーズ

Nordic Semiconductor launches nRF54L15, nRF54L10, and nRF54L05 next-generation wireless SoCs, redefining its leadership in ultra-low power wireless connectivity for the IoT

202411184

・u-bloxのtri-radioモジュール

u-blox launches tri-radio module that delivers the latest wireless technologies for IoT implementations

・Quectelの3in1アンテナ

Quectel launches new durable 3-in-1 4G, Wi-Fi and GNSS combo antennas at Electronica 2024

・GSAの5Gレビュー

5G in 2024 – Year in Review

2024年11月17日 (日)

今日は兵庫県知事選挙(と兵庫県議会議員補欠選挙)に投票に行ってきた。良くも悪くもこんなに兵庫県知事選挙が注目されることはもうないだろう。すごいときに兵庫県に引っ越してきたな。

今日、11月17日は兵庫県知事選挙。いつも期日前投票はせずに当日投票に行くことにしている(なんとなく盛り上がるから)。

Photo_20241117154101 20241117-102452

兵庫県に引っ越してきて、まさか知事があんなことになるとは想像もできなかった。

また出口調査の結果が出てきたら95%信頼区間をグラフにしよう。

今夜の選挙結果発表に備えて、出口調査の結果から母比率の95%信頼区間を各候補者についてプロットするものをPythonとSciPyのbinomtest、Matplotlibのerrorbarを使って作る。毎年勝手に予想(カシオの高精度計算サイトの自作式とExcel)していたのがとても楽に。

※描いてみた。

 

2024年11月16日 (土)

「グラディエーターII 英雄を呼ぶ声」をIMAXレーザー/GTで観てきた。すごかった!格闘シーンはもちろん、動物(あの猿は何?)や水上での闘いなどどれも迫力あり、最初の方に出た言葉を終盤また使うとき、最後の言葉は泣く…エンドクレジットで大工さんがいっぱいいたのは納得。

もう100%前作を忘れているが、IIを観てきた。せっかくなのでIMAXレーザー/GTテクノロジーで。

20241115-123400 20241115-123547

最初の船との戦争シーンからもうぐっと引き込まれる。投石器はすごいし、とにかく矢が当たったら痛そうな演出・音が目をみはる。

その後、グラディエーターになってからの格闘シーンは本当に手に汗握るものだった。

まあR15+だけあって結構人体破壊はあるけど…(首を回さないで…)

デンゼル・ワシントンの真意が途中まで分からないが、分かってからは怒涛の展開で、前作との繋がりがここでわかる(ここでやっと私も思い出した)。

アクションだけでなく、泣けるセリフも多くて、特に最初の方のセリフが終盤でてくるのはぐっとくる。最後の言葉もよかった。

あと動物がいろいろでますが、最初の猿?がよくわからん。あれなんて動物?

大規模なセットを組んだ、ということで大工さん(大道具さん)がエンドクレジットにたくさん出てくるのはなるほどと思ったり。

とにかく映像も音響もすごいので、できたらIMAXやDolby Cinemaの大画面で観た方がいいです。

 

2024年11月15日 (金)

高周波エンジニアのためのAI・機械学習入門(17)パッチアンテナ設計モジュールをPythonで作ったので、パッチ寸法(幅、長さ)、基板厚み、共振周波数を与えて比誘電率をKeras3.0を用いたディープラーニング(DNN)による回帰で予測する。

さて前回は学習データを10000個作った。これをKeras3.0でディープラーニング(DNN, Deep Neural Networks)で回帰してみよう。パッチ寸法(幅、長さ)、基板厚み、共振周波数を与えて比誘電率を予測するもので、こういうのは簡易誘電率測定としても使える。

まずはデータを読み込む。


import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
import os
os.environ["KERAS_BACKEND"] = "tensorflow"
import keras

data_label = np.load("patchantenna.npz")
data = data_label["data"]
label = data_label["label"]
x_train, x_test, y_train, y_test = train_test_split(data, label, test_size=0.3, random_state=0)

次にモデルの設定を行う、64ユニットの層を3層重ねている。shapeはパッチ幅、パッチ長さ、基板厚み、共振周波数なので4つ。最終出力は比誘電率1つなので1つ。


#正規化
normalizer = keras.layers.Normalization()
normalizer.adapt(x_train)

# Functional APIでDense層を3層にしたDNNを設定
hidden_dim = 64
inputs = keras.Input(shape=(4,))
x = normalizer(inputs)
x = keras.layers.Dense(hidden_dim, activation="relu")(x)
x = keras.layers.Dense(hidden_dim, activation="relu")(x)
x = keras.layers.Dense(hidden_dim, activation="relu")(x)
outputs = keras.layers.Dense(1)(x)

# モデルの設定
model = keras.Model(inputs=inputs, outputs=outputs)
model.compile(loss = 'mean_squared_error' ,optimizer=keras.optimizers.Adam())

ここから学習。100エポックで十分。


batch_size = 32
epochs = 100

keras.utils.set_random_seed(1)
history = model.fit(
    x_train,
    y_train,
    batch_size=batch_size,
    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))

これで

tf.Tensor(0.9996377, shape=(), dtype=float32)
[0.58174208]

と出力されるのでR2Score99.96%、平均0.58%の誤差であるとわかった。

図示してみる。


legend = ["er"]
fig, ax = plt.subplots(1, 2, figsize=(12,6))

maxvalue = y_pred.max()
ax[0].scatter(y_pred, y_test, c="r", s=5)
ax[0].plot([0,maxvalue], [0,maxvalue], "--", c="black")
ax[0].set_xlabel("推定した値", fontname='MS Gothic')
ax[0].set_ylabel("実際の値", fontname='MS Gothic')
ax[0].set_xlim(0, maxvalue)
ax[0].set_ylim(0, maxvalue)
ax[0].grid()
ax[0].legend([legend[0] + f" 平均誤差{error.mean():.2f}%"], prop={"family":"MS Gothic"})
ax[1].hist(error, bins = 100)
ax[1].set_xlabel("誤差[%]", fontname='MS Gothic')
ax[1].set_ylabel("頻度", fontname='MS Gothic')
ax[1].grid()
fig.tight_layout()
plt.show()

Msadnn

まあこれくらい相関とれていればいいだろう。比誘電率高いところでちょっとばらついていて、最大5%くらいの誤差にはなってそうだが。

 

 

2024年11月14日 (木)

トランジスタ技術2024年12月号の特集はChatGPT電子回路。期待していたのは電子回路設計だったがそれはまだいまいち。でも2000円台で買えるエッジAI向けNPU搭載マイコンやラズパイでローカルLLMを動かしたりAPIをたたいたりと面白そう。久々にマイコンボード触りたくなった。

ChatGPT電子回路、ということで電子回路設計にChatGPTを応用するのかな?と思って買ってきた。

20241112-170249

アマゾンリンク:https://amzn.to/3VcM4Fx

ログペリアンテナ、RLCフィルタ、紫外線殺菌灯の設計の取り組みもあったが、まああんまりうまくいってない。まあそういうのはほぼ学習してないだろうから…(SPICEのネットリストくらいならやってくれるというのは以前確かめた。またやってみるか。)

しかし2000円台で秋月電子で買える

Milk-V Duo 256M

がNPUまで搭載したエッジAIに向くマイコンで、中国メーカーすごいなと思ったり。YOLOv5を動かす事例が紹介されていた。

またラズパイ5にローカルLLMのLLaVAを実装していてこれは自分でも試したい。

https://llava-vl.github.io/

またRaspberry Pi Pico WやPSoC6でChatGPTのAPIたたいたりとこれもすぐにでも応用できそう。

久々に日本橋行くかな。

あとその特集ではないが、cm級GPS測位の物理学の記事で、地球の重力場を表すのに球面調和関数を数千次まで使うというのを知って驚く…っ大変だ…

2024年11月13日 (水)

高周波エンジニアのためのAI・機械学習入門(16)パッチアンテナ設計モジュールをPythonで作ったので、パッチ寸法(幅、長さ)、基板厚み、共振周波数を与えて比誘電率を回帰で予測するための準備としてモンテカルロシミュレーションを行う。

これまで高周波への機械学習応用としてはフィルタを中心にやってきた。

パッチアンテナ設計モジュールをPythonで作ったので、今度はパッチアンテナにディープラーニングを適用してみる。

作ったツールは、基板厚み、比誘電率、共振周波数を与えてパッチ寸法(幅、長さ)を与えるものなので、パッチ寸法(幅、長さ)、基板厚み、共振周波数を与えて比誘電率を予測してみよう。こういうのは簡易誘電率測定に使える。

まず今回はデータをモンテカルロシミュレーションで作る。以下のような感じで10000個。


import numpy as np
import matplotlib.pyplot as plt
import patchantenna as pa

#モンテカルロシミュレーションでは基板比誘電率、厚み、中心周波数を乱数で振るが、それの最大最小
ermin = 2.0
ermax = 10.0
hmin = 0.1
hmax = 1.0
f0min = 1
f0max = 10

#モンテカルロシミュレーションでデータ作成して保存する。
N = 10000
np.random.seed(1)
data = np.empty((0, 4))
label = np.empty((0, 1))
for i in range(N):
    er = ermin + (ermax - ermin) * np.random.rand()
    h = hmin + (hmax - hmin) * np.random.rand()
    f0 = f0min + (f0max - f0min) * np.random.rand()    
    ant = pa.PatchAntenna(er, h, f0)
    w = ant.width
    l = ant.length
    data = np.vstack((data, np.array([w, l, h, f0])))
    label = np.vstack((label, er))

#保存
np.savez_compressed("patchantenna.npz", data=data, label=label)

これはフィルタのモンテカルロシミュレーションよりもっと簡単。計算も一瞬で出来た。

次はこのデータを使ってDNN(Deep Neural Networks)をやってみよう(続く)。

2024年11月12日 (火)

高周波・RFニュース 2024年11月12日 5G AmericasがProgrammable Networkの、HuaweiがAutonomous Networkのホワイトペーパー発行、Atisが3GPPのミーティングホストに、RCR wirelessのWi-Fiウェビナー、Samtecの70GHz SIテストキット、Taoglasのアンテナ選択ツールなど。

・5G AmericasがProgrammable Networkのホワイトペーパー発行

5G Americas Unveils Strategic Insights on the Programmable 5G Network and API Ecosystem

202411121

Ericssonもちょうどこういう発表をしていた。

Programmable networks and APIs take center stage at Ericsson Silicon Valley showcase

 

・HuaweiがAutonomous Networkのホワイトペーパー発行

TM Forum, Huawei, and Industry Partners Jointly Release Autonomous Networks Levels Evaluation Whitepaper

202411122

・Atisが3GPPのミーティングホストに

ATIS Welcomes You
to the 3GPP Working Group Meetings

・RCR wirelessのWi-Fiウェビナー

https://content.rcrwireless.com/20241203-state-of-wi-fi-webinar

 

・Samtecの70GHz SIテストキット

70-GHz SI Test Assembly System Now Has Eval Kit

202411123

・Taoglasのアンテナ選択ツール

Taoglas AntennaXpert Tools Empower Engineers to Select the Optimal Antenna Solution

202411124

 

・QuectelがGNSSモジュール+アンテナバンドルサービス

Quectel accelerates high-precision positioning with quad-band GNSS module, antenna and RTK correction service bundle

・Next G allianceのWebinar

・インドのスマートフォン Lava Agni 3分解動画
プロセッサはMediaTek、中華圏のミッド・ローエンドスマホとほとんど同じ構成。日本円で5万円切ってる。

2024年11月11日 (月)

「学習物理学入門」を買った。NNの基礎、微分方程式、量子力学の波動関数、トランスフォーマー、拡散モデル・経路積分など多彩な話題がコンパクトにまとめられていて面白い。AIボットに質問もできて、早速NNで微分方程式を解くPythonコードを答えてもらった。

話題になっていたので、これは私も読んでみようと買ってきた。これは参考になる。

20241109-171110

アマゾンリンク:

https://amzn.to/3YVZQhM

内容は:

A 機械学習と物理学
A1. 線形モデル
A2. ニューラルネットワーク(NN)
A3. 対称性と機械学習:畳み込み・同変 NN
A4. 古典力学と機械学習: NN と微分方程式
A5. 量子力学と機械学習: NN 波動関数
B 機械学習模型と物理学
B1. トランスフォーマー
B2. 拡散モデルと経路積分
B3. 機械学習の仕組み: 統計力学的アプローチ
B4. 大規模言語モデルと科学

と非常に多彩な話題がコンパクトにまとめられている。

拡散モデルに近いことは物理として学生時代にやっていたし、波動関数もいろいろ計算できそう。

その中でも一番興味があるのは微分方程式の話。そこでAIボット(学習物理学入門解説bot)も作られていた(!すごい)ので聞いてみた。

Bot

ちょっと手直ししたらそれっぽいものが動いた。なるほど。

この手のはNeural ODEというキーワードで調べると色々出てきてPyTorchの場合はtorchdiffeq、Tensorflow Probabilityなどもライブラリとしてつかえそう。ちょっといろいろ遊んでみたい。

2024年11月10日 (日)

2024年大統領選、2色の色分けではいまいちわかりにくいので、選挙人の人数に合わせて濃淡をつけたマップにしてみる(Excelのマップ塗り分けグラフを使って)濃淡つけてもトランプの圧勝。

こういう2色のグラフでは選挙人の数との関係がわかりにくいので、

 

前回2020年もやったが今回も色分けしてみよう。

塗り分けグラフはExcelで簡単に作れる。

Excel でマップ グラフを作成する

結果はこちら。

2024_20241110161501

こう見ても思っていた以上にトランプの圧勝だったんだな。

前回のもの:

 

ドラクエウォーク、スペシャルウォークDAY ハロウィンのビンゴ、完了。もりもりバスケットも錬金し、堕天使の棺もゲット。しかしポケモンGOのガラルの呼び声はまた18でいったん止まった。

ドラクエウォーク、スペシャルウォークDAY ハロウィンのビンゴやっと終わった…超面倒だった。

20241109-163512

20241109-163526

ただメタルキングコインや手形が入手できるのはいい。

錬金も完了。

20241109-163756

そして一発で堕天使の棺を引き当てた。ついてる。

20241109-164802

ドラクエウォークの方はいいけど、ポケモンGOのガラルの呼び声がいつまでたっても終わらない…あと18,19の2つなのに。

20241109-165239

2024年11月 9日 (土)

映画「レッド・ワン」を観てきた。想像以上に面白かった。手癖の悪いキャップ、案外情けないドウェイン、久々のかっこいいルーシーが観られるし、アクションもかっこよく、サンタが一晩で世界中に配れる理由や劇中最強の生物に驚いたり。しかしモノポリーは?

サンタが誘拐されると聞いて「出落ち?」と思ったが全然そんなことなかった。かなり面白かった。

監督がジュマンジの人なだけはあった。

20241108-132829

トナカイのメスにも角があるのを知らなかった…とにかくまずそりがかっこいい。マッチョなサンタも。

サンタはいるが北極に超ハイテクで外部からは見ることのできない基地もよかった。

クリス・エヴァンス(キャップ)が珍しく小悪党で息子ともうまくやっていけない男を演じていたのも面白いし、ドウェイン・ジョンソンのアクションはやはりかっこいい。ちょっと情けないところがあったが…あの腕の機械欲しい。でまさかあの機能が一晩でサンタがプレゼントを配れる一つの要因になっていたとは。

そして久々のルーシー・リュー。ちょっとだけアクションしてくれたのがよかったし、魔女のキーナン・シプカさんも可愛かった。

しかしモノポリー!一体あれどう使うんだ、と思っていたら…そこだけは不満!

 

2024年11月 8日 (金)

高周波・RFニュース 2024年11月8日 IEEE Microwave MagazineにDunsmoreさんがネットアナ(VNA)の進化について、Kymetaの新しいフラットアンテナ、IDTechExの半導体パッケージ解説、BroadcomのAIネットワーキング、Samsung主催のAIワイヤレスサミット

・IEEE Microwave MagazineにDunsmoreさんがネットアナ(VNA)の進化についての記事

もう今のネットアナは何でもできるようになってきている。ただHP8510Aにはお世話になった。

https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6668

202411081

・Kymetaの新しいフラットアンテナ

Kymeta Unveils its Second Multi-Orbit, On-the-Move Flat-Panel Antenna – the Goshawk™ u8

202411082

・IDTechExの半導体パッケージ解説

Emerging Trends and Key Markets in 2.5D and 3D Semiconductor Packaging Technologies

202411083

・TIのミリ波レーダーキット

Kit Aids Development for Satellite Radar Sensor Chip

202411084

・BroadcomのAIネットワーキング

Broadcom Unveils VeloRAIN, an Industry-First for Robust AI Networking Beyond the Data Center

 

・Samsung主催のAIワイヤレスサミット

Samsung Electronics Hosts Silicon Valley Future Wireless Summit

 

2024年11月 7日 (木)

印象派 モネからアメリカへ ウスター美術館所蔵@あべのハルカス美術館を観てきた。モネの睡蓮も展示されているし、アメリカに印象派がどう影響を与えたのかが知れて興味深い。あと美術館が絵を買うときのやりとりが展示されていて面白かったり。6作品は撮影可でした。

あべのハルカス美術館に印象派 モネからアメリカへ ウスター美術館所蔵を観に来た。

20241105-121554

20241105-121613

バルビゾン派からフランスの印象派へ(モネもルノアールも展示)、そしてアメリカや日本に影響を与えたことがわかる展示で興味深かった。

6点は撮影可能でした(平日17:00以降は全部撮影可だとか)。

20241105-123129

モネの睡蓮。ウスター美術館がこの絵を買うときのやりとりの手紙が貼ってあって面白かった。

20241105-123259

20241105-124144

ポール・シニャックのゴルフ・ジュアン。この絵は切り絵のような雰囲気でよかった。

20241105-125551

 

20241105-130022

20241105-130051

グッズコーナーで出落ちのような商品があるので、見てきた人のお楽しみ(ネタバレしない)。

2024年11月 6日 (水)

映画「八犬伝」を観てきた。物語の八犬伝と、それを書いた馬琴と北斎との交流が突然切り替わる面白い構成。切り替わるたびに話が進むので馬琴たちが老いていくのも。昔NHKの人形劇で観てたので玉が懐かしかった。しかし板垣李光人くんどう見ても女性にしか見えない…

前から気になっていた八犬伝をようやく観てきた。

20241104-120728

やはり役所広司さんと内野聖陽さんのやりとりは安心してみてられる。そのお二人と周りの人々が八犬伝パートが終わるたびに歳を取って行く演出も面白い。最後は史実通りらしい(お路が代筆)。キーワードは「虚」と「実」でした。歌舞伎の四谷怪談まで出てきてもう盛りだくさんすぎるほ詰め込まれていた。

八犬伝パートの方は戦隊・ライダーに出ていた渡邊圭祐さん、佳久創さん、藤岡真威人さんが出ていてまさに最初期の戦隊もののよう。屋根の上のアクションシーンよかった。しかし何をどう見ても板垣李光人さんが綺麗な女性にしか見えない…ラストも本当に戦隊ヒーローのようだった。

結構長い作品ですが、その長さを感じさせないくらいにいろいろ盛り込まれていた。

 

2024年11月 5日 (火)

Pythonでマイクロストリップパッチアンテナの設計ツールを作る(5) これまでをまとめてクラス化・モジュール化した。パッチサイズ、入力インピーダンス、指向性、効率、利得が計算できる。使い方まとめ。

これまでやってきたことを全部まとめてクラス化した。コードは後で説明するとして、まずは使い方から。

Antclass2

クラス名はPatchAntennaで、それをpatchantenna.pyというファイルに記載している。なのでまずそのファイルをパスの通ったところにいれて

import patchantenna as pa

とでもしてインポートする。

①初期化

初期化は

    """
    矩形マイクロストリップパッチアンテナ設計クラス

    Parameters
    ----------
    er : 基板の比誘電率
    h  : 基板の厚み[mm]
    f0 : 共振周波数[GHz]
    tanD : 基板誘電体のtanδ
         (省略すると0.01)
    sigma : パッチ導体の導電率[S/m]
          (省略すると5.8E7)
    """
    def __init__(self, er, h, f0, tanD = 0.01, sigma = 5.8E7):
のようになっているので、

ant = pa.PatchAntenna(2.2, 1.588, 10)

のようにインスタンス化する。ここでtanδとσを省略するとデフォルト値が入る。

この時同時にパッチ幅W、パッチ長さLが設計されて内部に保持される。

②パッチ寸法読み・書き

propertyのwidthとlengthを使う。設計値以外のものを使う場合は代入も可能。

読み取り:
ant.width
11.85033740616217
ant.length
9.053429316199928
書き込み:
ant.width = 12
ant.length = 10
③入力インピーダンス
以下のようにする。
ant.input_impedance()
228.3957073596198
ant.input_impedance(3.12)
50.2343608577977
ここで引数はオフセットを表す。省略すると0。
メソッドの説明は以下の通り。
    def input_impedance(self, offset = 0):
        """
        矩形マイクロストリップパッチアンテナの入力インピーダンスを計算する。

        Parameters
        ----------
        offset : パッチ端からの給電位置[mm]

        Returns
        -------
        入力インピーダンス[Ω]
        """
④指向性
以下のようにする。
ant.directivity()
7.354142436865478
メソッドの説明は以下の通り。
    def directivity(self):
        """
        矩形マイクロストリップパッチアンテナの指向性(Directivity)を計算する。

        Returns
        -------
        指向性[dB]
        """
⑤効率
以前出したものは%で出力したが今回からdBにした。
ant.efficiency()
-0.6529214284080533
    def efficiency(self):
        """
        矩形マイクロストリップパッチアンテナの効率(efficiency)を計算する。
       
        Returns
        -------
        アンテナ効率[dB]
        """
⑥アンテナ利得(ゲイン)
指向性と効率の和になる。
ant.gain()
6.701221008457425
    def gain(self):
        """
        矩形マイクロストリップパッチアンテナのアンテナ利得(Gain)を計算する。

        Returns
        -------
        アンテナ利得[dB]

        """
⑦寸法パラメータの説明
実はこれが一番気に入っている。ただ環境、フォントによっては崩れるかも…
ant.draw()
Antclass
これを作ったのはまたAI・機械学習の例題にするため。それはまた後日。
ではそのファイルと、ソースコードを示す。

ダウンロード - patchantenna.py


import numpy as np
from scipy.integrate import quad
from scipy.special import sici, j0
from scipy.integrate import dblquad

class PatchAntenna:
    """
    矩形マイクロストリップパッチアンテナ設計クラス

    Parameters
    ----------
    er : 基板の比誘電率
    h  : 基板の厚み[mm]
    f0 : 共振周波数[GHz]
    tanD : 基板誘電体のtanδ
         (省略すると0.01)
    sigma : パッチ導体の導電率[S/m]
          (省略すると5.8E7)
    """
    def __init__(self, er, h, f0, tanD = 0.01, sigma = 5.8E7):
        self.er = er
        self.h = h * 1.0E-3
        self.f0 = f0 * 1.0E9
        self.u0 = 4.0 * np.pi * 1.E-7
        self.e0 = 8.85418782E-12
        self.tanD = tanD
        self.sigma = sigma
        self.lambda0 = 1 /(self.f0 * np.sqrt(self.e0 * self.u0))

        #パッチ幅
        self.W = (1.0 / (2 * self.f0 * np.sqrt(self.e0 * self.u0))) * np.sqrt(2.0 / (self.er + 1.0))
        #有効比誘電率ereff
        self.ereff = (self.er + 1.0) / 2.0 + ((self.er - 1.0) / 2.0) / np.sqrt(1.0 + 12.0 * self.h / self.W)

        #フリンジングΔL
        self.dL = self.h * 0.412 * (self.ereff + 0.3) * (self.W / self.h + 0.264) / ((self.ereff - 0.258) * (self.W / self.h + 0.8))

        #基板内波長
        self.wave_length = 1 /(self.f0 * np.sqrt(self.ereff * self.e0 * self.u0))
   
        #パッチ長さ
        self.L = self.wave_length / 2 - 2 * self.dL

    @property
    def width(self):
        """
        パッチ幅を読み書きするプロパティ
        """
        return self.W * 1000
   
    @width.setter
    def width(self, W):  
        self.W = W * 1.0E-3

    @property
    def length(self):    
        """
        パッチ長さを読み書きするプロパティ
        """
        return self.L * 1000
   
    @length.setter
    def length(self, L):
        self.L = L * 1.0E-3

    def input_impedance(self, offset = 0):
        """
        矩形マイクロストリップパッチアンテナの入力インピーダンスを計算する。

        Parameters
        ----------
        offset : パッチ端からの給電位置[mm]

        Returns
        -------
        入力インピーダンス[Ω]
        """
        k0=2.0 * np.pi / self.lambda0
        X = k0 * self.W
        siX, _ = sici(X)
        I1 = -2 + np.cos(X) +  X * siX + np.sin(X)/X
        G1 = I1 / (120 * np.pi**2)
        def f(t, X, Y):
            return ((np.sin(X*np.cos(t) / 2.0) / np.cos(t))**2) * j0(Y * np.sin(t)) * np.sin(t)**3
        I2, _ = quad(f, 0, np.pi, args = (X, k0*self.L))
        G12 = I2 / (120* np.pi **2)
        Rin = 1 / (2 * (G1 + G12))
        return Rin * np.cos(np.pi * offset * 1.0E-3 / self.L) ** 2
   
    def directivity(self):
        """
        矩形マイクロストリップパッチアンテナの指向性(Directivity)を計算する。

        Returns
        -------
        指向性[dB]
        """
        k0 = 2.0 * np.pi / self.lambda0
        X = k0 * self.W
        def f(theta, phi, X, Y):
            return (np.sin(X*np.cos(theta)/2) / np.cos(theta)) **2 * (np.sin(theta) **3) * (np.cos(Y*np.sin(theta)*np.sin(phi)/2)) ** 2
        I2, _ = dblquad(f, 0, np.pi, 0, np.pi, args=(X, k0 * self.wave_length /2))
        self.D2 = (2* np.pi * self.W / self.lambda0) **2 * (np.pi / I2)
   
        return 10 * np.log10(self.D2)
   
    def efficiency(self):
        """
        矩形マイクロストリップパッチアンテナの効率(efficiency)を計算する。
       
        Returns
        -------
        アンテナ効率[dB]
        """
        #放射Qの近似式
        if self.er > 2:
            self.Qr = 3 * self.er * self.lambda0 / (8 * self.h)
        else:
            self.Qr = (np.pi * np.pi * np.sqrt(self.er) / (4 * np.pi * np.pi - 16 * np.sqrt(self.er))) * (self.lambda0 / self.h)

        #導体Q
        ds = np.sqrt(2 / (2 * np.pi * self.f0 * self.u0 * self.sigma))
        self.Qc = self.h / ds
   
        #誘電体Q
        self.Qd = 1 / self.tanD

        #無負荷Q
        self.Qt = 1 / (1 / self.Qc + 1 / self.Qd + 1 / self.Qr)

        self.eta = self.Qt / self.Qr
   
        return 10 * np.log10(self.eta)
   
    def gain(self):
        """
        矩形マイクロストリップパッチアンテナのアンテナ利得(Gain)を計算する。

        Returns
        -------
        アンテナ利得[dB]

        """
        D2 = self.directivity()
        eta = self.efficiency()

        return D2 + eta
   
    def draw(self):
        """
        矩形マイクロストリップアンテナの寸法説明
        """
        print("        ←------ W --------→ ")
        print("    ↑ ┌────────────────────┐")
        print("    | │              │")
        print("    | │              │")
        print("      │              │")
        print("    L │              │")
        print("      │              │")
        print("    | │       〇      │")
        print("    | │             |             │")
        print("    | │             | offset     │")
        print("    ↓ └────────────────────┘")
        print("                 Thickness: h")

 

 

2024年11月 4日 (月)

高周波・RFニュース 2024年11月4日 IEEE Antennas and Propagation Magazineでアンテナ技術の進化とアレイのレビュー、EMC EuropeでAIをDe-embeddingに応用、I-PEXがシールド付き細線同軸コネクタ発表、iPhone 17からApple製Wi-Fiチップ?Huaweiの5G-Aᴬ

・IEEE Antennas and Propagation Magazineでアンテナ技術の進化とアレイのレビュー

https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=74

八木・宇田アンテナからログペリまで、またミリ波アンテナアレイのレビューの記事あり。

202411041

・EMC EuropeでAIをDe-embeddingに応用

A Novel De-embedding Method Based on Artificial Neural Network

・QorvoのWi-Fi 7 FEMがMediaTekに採用

Qorvo® Selected by MediaTek as Key Supplier for the Inaugural Wave of Wi-Fi 7 FEMs Used in MediaTek Dimensity 9400

202411042

・I-PEXがシールド付き細線同軸コネクタ発表

新製品リリース:情報通信機器向けコネクタ CABLINE®-CA IIF PLUSを販売開始(2024/11/1)

202411043

・Ming-Chi KuoがiPhone 17からApple製Wi-Fiチップになると語る

 

 

その他:

Ericsson targets high-performing programmable networks with new 5G Advanced software

Huawei Launches 5G-AA Solutions for the Mobile AI Era

202411044

Marvell : Nine Things to Remember About the Future of Copper in Computing

MaxLinear Launches Broad Portfolio of Half-Duplex RS-485 Transceivers Designed for Demanding Applications

2024年11月 3日 (日)

そじ坊(ならファミリー店)でかつ丼と選べる小そばの定食(冷やし山菜とろろの小そば)をいただく。なかなか美味しかった。

奈良国立博物館で正倉院展を観た後はならファミリーのそじ坊でランチ。

かつ丼と選べる小そばの定食で、冷やし山菜とろろそばにした。

20241030-135907

小そばとはいえ具沢山でかなりの量があって、またかつ丼も美味しかった。

2024年11月 2日 (土)

ココイチでThe牛咖喱 肉増しを吉野家で牛カレー鍋膳をいただく。ココイチはこのビーフカレーが出るたびにいただいていてコクがあって美味しい。吉野家はそこまでカレーは強くないが逆にあっさりしていていい。きしめんも美味しい。

まずはココイチのThe牛咖喱 肉増し 2辛 400g。

20241026-145308

このカレーは出るたびに食べている。通常のポークカレーよりコクがあって美味しい。値段はちょっと高いけど…

吉野家では牛カレー鍋膳をノーマルで。

20241027-115012 20241027-115016

コンロで熱々になるのがいいな。そこまでカレーは強くなく和風だしの風味も強い。これで野菜を食べると美味しい。

きしめんもいい感じ。

2024年11月 1日 (金)

第76回 正倉院展に行ってきた。今回はカラフルなものが多く、中でも七宝細工の鏡、黄金瑠璃鈿背十二稜鏡や真っ赤な象牙のものさし、紅牙撥鏤尺 、色とりどりのガラス(これを作る技術はすごい)がよかった。酸化鉛は私はセラミック扱っていたことがあるのでオレンジと知ってたり。

今年も行ってきました。

20241030-112839

事前予約をみんなしているとはいえものすごい人出。

20241030-115549 20241030-120128

中は撮影不可ですが、今回はカラフルなものが多かった。

貰える読売新聞の特集。

20241030-160548

この七宝細工の鏡、この写真以上に輝いていてすごいなと。

象牙の物差しの方はサイズ感がこれでは伝わりませんが、20㎝ほど。それでもこの細かい細工と鮮やかな赤がこれもすごかった。

お魚の色ガラスも、よくこんなものを当時作れたなと感心しかない。

ちなみにそれに使われる酸化鉛も展示してありましたが、オレンジ色。私は大昔にセラミック材料の開発をしていたので見る前からわかったのだった。

まあどれもすごい展示なので、また来年も行く。

 

« 2024年10月 | トップページ | 2024年12月 »

最近の記事

最近のコメント

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ