Maxima には、diag_matrix( a1,a2,...,an) のような可変引数を受け入れる関数があり、対角要素が a1,...,an である対角行列を作成するために使用されます。
ただし、現在、[a1、a2、..an] のリストがあり、それから対角行列を作成したいと考えています。diag_matrix はリストを直接受け入れることはできません。diag_matrix を利用してマトリックスを作成する方法はありますか?
一般に、式 apply(foo, [a1, ..., an]) は、関数 foo を引数のリスト [a1, ..., an] に適用します。
特に、apply(diag_matrix, [a1, ..., an]) は diag_matrix を [a1, ..., an] に適用します。それがあなたがここで望んでいることだと思います。
foo がその引数を引用符で囲んだり、foo がそれ自体以外のものに評価されたりしても、apply はすべての引数を評価することに注意してください。そのため、Maxima にはしばしば役立つ「適用敗北引用」イディオムがあります。