こんにちは、私は私が持っているリストである場合、例えば、それを単純化するために、リストの一般的な用語を取得しようとしています:Pythonの:リスト代数の簡素化
List=[['1','A1','B1','Kc','Ka'],['1','A1','B1','D2','Kc','Ka'],['-1','A1','B1','D1','Kc','Ka'],['1','A1','B1','D1','KD','Ka'],['-1','B1','D1','C1','Kc','Ka','KF'],['1','B1','D1','F1','Kc','Kz','Kl']]
結果として私を与えることができる任意の関数があります:
List_output=[['A1','B1',[['D1',['ka',[['-1','Kc'],['1','KD']]]],['1','Kc','Ka'],['-1','D2','Kc','Ka']]],['B1,D1'[[ 'C1',[-1,'Kc','Ka','kF']],['F1',['1','Kz','Kl','Kc']]] ]]
私が基本的にやりたいことは、代数的な削減です。
A1 B1 Kcをカ+ A1 B1 D2 Kcをカ-A1 B1 D1 Kcをカ+ A1 B1 D1 KDカ - B1 D1 C1 KcをカKF + B1 D1 F1 KcをKzをのKI
= A1B1 [D1 [ - KcKa] + [D1Kca + KcKa] + B1D1 [-C1 [KcKaKF] + F1 [KcKzKl]]
簡略化のための唯一の要件は、単純化されたすべての用語がKの和または残りに依存する必要があることです。つまり、すべてがKの線形結合の関数である必要があります。 [-KcKa + KDKa]; [KcKaKF] = [[ - 1 '、' Kc '、' Ka ']、[' + 1 '、' KD '、' Ka ']]; ['+1'、 'KC'、 'Ka'、 'KF']
私はSympyを使用しようとしていますが、私が持っている問題は、シンボルを宣言する必要があるsympyを使用してください。どのように私はこの問題に取り組むことができる任意のアイデア?すべての
非常に興味深い質問。ソリューションが何らかの形で最適であるという要件がありますか、あるいは良い簡素化が機能しますか? –
問題に固有の解決策はありません。サブ式は、複数の等価な方法で因数分解することができます。 –
唯一の要件は、すべての単純化がKの和または残りに依存する必要があることです。つまり、すべてがKの – user3671704