matlab 辅助计算固体物理行列式方程
用MATLAB线性代数的基本运算

第五章线性代数的基本运算本章学习的主要目的:1 复习线性代数中有关行列式、矩阵、矩阵初等变换、向量的线性相关性、线性方程组的求解、相似矩阵和二次型的相关知识.2学会用MatLab 软件进行行列式的计算、矩阵的基本运算、矩阵初等变换、向量的线性相关性的判别、线性方程组的求解、二次型化标准形的运算.5.1 行列式5.1.1 n 阶行列式定义由2n 个元素),,2,1,(n j i a ij =组成的记号D=nnn n nn a a a a a a a a a 212222111211称为n 阶行列式.其值是所有取自不同行不同列的n 个元素的乘积n np 2p 21p 1a a a 的代数和,各项的符号由n 级排列n p p p 21决定,即D=∑-npp p n p p p 21n np 2p 21p 1)21(a a a)1(τ,其中∑np p p 21表示对所有n 级排列求和,),,,(21n p p p τ是排列n p p p 21的逆序数.5.1.2行列式的性质(1) 行列式与它的转置行列式相等.(2) 互换行列式的两行(列),行列式变号.(3) 若行列式有两行(列)完全相同,则此行列式为零.(4)行列式的某一行(列)中所有的元素都乘以同一数k,等于用数k 乘此行列式.(5) 若行列式有两行(列)元素成比例,则此行列式为零.(6) 若行列式的某一列(行)的元素是两数的和,则此行列式等于对应两个行列式之和.即nnn n ni n n i i nn n n ni n n i i nn n n ni ni n n i i i i a a a a a a a a a a a a a a a a a a a a aa a a a a a a a a a a a a a a a a a21'21'22221'112112121222211121121'21'222221'111211+=+++(7) 若行列式的某一行(列)的各元素乘以同一数加到另一行(列)对应的元素上去,行列式不变.(8) 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和,即),,2,1(,0,1j k n i k i ki D A a D nj ij =⎩⎨⎧≠===∑=,或),,2,1(,0,1i n j k j kj D A a D nik ij =⎩⎨⎧≠===∑=(9) 设A,B 是n 阶方阵,则T A A =,A A n k k =,B A AB =, (10)若A 是n 阶可逆矩阵,则0≠A ,AA 11=- (11) 设n 21,,,λλλ 是n 阶方阵A 的特征值,则i nA λ1i =∏=,(12) 设*A 是n 阶方阵A 的伴随矩阵,则2n *1≥=-n A A(13) 几种特殊行列式的计算:nn nn a a a a a a 22112211000000= , nn nnnn a a a a a a a a a 221122*********=nn nn n n a a a a a a a a a221121222111000=,112n 12)1(1222111211)1(000n n n n n na a a a a a a a a---=5.1.3 MatLab 计算行列式的命令det(var) %计算方阵var 的行列式例1 计算行列式3833262290432231----的值在MatLab 命令窗口输入:A=[1,-3,2,2;-3,4,0,9;2,-2,6,2;3,-3,8,3] det(A)执行结果:A = 1 -3 2 2 -3 4 0 9 2 -2 6 2 3 -3 8 3 ans = -50例2 计算行列式dcb 10110011001a---的值,其中a,b,c,d 是参数.在MatLab 命令窗口输入:syms a b c dA=[a,1,0,0;-1,b,1,0;0,-1,c,1;0,0,-1,d] det(A)执行结果:A =[ a, 1, 0, 0][ -1, b, 1, 0] [ 0, -1, c, 1] [ 0, 0, -1, d]ans =a*b*c*d+a*b+a*d+c*d+1例3 求方程0881441221111132=--x xx的根.(1) 先求行列式的值在MatLab 命令窗口输入:syms xA=[1,1,1,1;1,-2,2,x;1,4,4,x*x;1,-8,8,x^3]y=det(A)执行结果:A =[ 1, 1, 1, 1][ 1, -2, 2, x][ 1, 4, 4, x^2][ 1, -8, 8, x^3]y =-12*x^3+48*x+12*x^2-48(2) 求3次方程的根.首先通过函数的图形确定根的大致范围,在MatLab命令窗口输入:grid onezplot(y)图1观察图1,可知3个根大致在-2,0,4附近,下面求精确值,在MatLab命令窗口输入:yf=char(y);g1=fzero(yf,-2)g2=fzero(yf,0)g3=fzero(yf,4)执行结果: g1 = -2g2 = 1.0000 g3 = 2.0000可知方程的3个根分别为-2,1,2.5.1.4用MatLab 实现克拉默法则(1)克拉默法则非齐次线性方程组方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 22112222212********* 当其系数行列式0212222111211≠=nnn n nna a a a a a a a a D 时,此方程组有唯一解,且可表示为DD x D D x D D x n n ===,,,2211 其中),,2,1(n j D J =是把系数行列式D 中第j 列的元素用方程组右端的常数项代替后所得到的n 阶行列式,即nnj n nj n n n j j j a a b a a a a b a a D1,1,111,111,111+-+-= 对于齐次线性方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++000221122221211212111n nn n n nn n n x a x a x a x a x a x a x a x a x a 当其系数行列式0212222111211≠=nnn n nn a a a a a a a a a D时,此方程组有唯一零解;当D=0时,方程组有非零解.(2) 编写函数klm.m 实现用克拉默法则求解非齐次线性方程组.function x=klm(a,b) %参数a 代表方程组的系数矩阵,列矩阵b 代表方程组的常数列,%返回方程组的解[m,n]=size(a); if (m~=n)disp('克拉默法则不适用此方程组的求解!') elsed=det(a); if (d==0)disp('该方程组没有唯一解!') elsedisp('该方程组有唯一解!') for i=1:m e=a; e(:,i)=b; f=det(e); x(i)=f/d; end end end例4 用克拉默法则解下列方程组:12341234123412345242235232110x x x x x x x x x x x x x x x x +++=⎧⎪+-+=-⎪⎨---=-⎪⎪+++=⎩ 操作步骤:在MatLab 命令窗口输入:D=[1,1,1,1;1,2,-1,4;2,-3,-1,-5;3,1,2,11]; A=[5;-2;-2;0]; klm(D,A) 执行结果:该方程组有唯一解!ans = 1 2 3 -1方程组的解为1,3,2,1x 4321-====x x x例5 问a 取何值时,齐次方程组⎪⎩⎪⎨⎧=-+=-+=++-0)4(20)6(2022)5(3121321x a x x a x x x x a 有非零解? 根据齐次方程组有非零解,系数行列式为零,用MatLab 操作步骤如下:在MatLab 命令窗口输入:syms xA=[5-x,2,2;2,6-x,0;2,0,4-x]; yy=det(A)ezplot(yy,[0,10]) grid on 执行结果:行列式的值为:yy =80-66*x+15*x^2-x^3 作函数yy 的图形,如图2观察图2,可知根大致在附近,再输入命令:yf=char(yy); x1=fzero(yf,2) x2=fzero(yf,5) x3=fzero(yf,8) 执行结果: x1 = 2 x2 = 5 x3 = 8即a 取2,5,或8时,齐次方程组有非零解。
matlab利用拉格朗日插值法求解范德蒙行列式 -回复

matlab利用拉格朗日插值法求解范德蒙行列式-回复MATLAB是一款强大的数值计算软件,广泛应用于科学、工程和许多其他领域。
在MATLAB中,我们可以使用拉格朗日插值法来求解范德蒙(Vandermonde)行列式。
本文将一步一步地介绍如何使用MATLAB来实现这个过程。
范德蒙行列式是一种特殊的行列式形式,其矩阵中的元素由变量的幂来定义。
具体来说,一个n阶的范德蒙矩阵可以表示为:n = length(a);A = ones(n);for i = 1:nA(:,i) = a(i).^(0:n-1);enddet = det(A);end在这个函数中,x是一个包含变量的向量,a是一个包含给定常数的向量。
我们首先计算变量的数量n。
然后,我们创建一个大小为n×n的单位矩阵A。
接下来的循环中,我们将每一列的元素设置为给定常数的幂。
最后,我们使用MATLAB内置的det函数来计算矩阵A的行列式,并将结果返回。
接下来,我们可以编写一个主程序来使用这个函数并求解范德蒙行列式。
以下是一个简单的例子:matlabx = [1 2 3 4 5];a = [1 2 3 4 5];d = vandermonde_det(x, a);disp(d);在这个例子中,我们定义了一个变量向量x和一个常数向量a,它们分别包含了范德蒙行列式中的变量和常数。
然后,我们调用vandermonde_det 函数来计算范德蒙行列式的值,并将结果打印出来。
通过运行这个程序,我们可以得到范德蒙行列式的值。
第六章 线性代数的应用以及Matlab实现

解最多有m个非0元素.
线性代数
6.1.3 向量组和线性方程组
第三步 解相应的齐次方程组AX=0,求的基础解,可以 使用函数null()求的基础解,null(A)返回齐次方程组 的一个基础解系.
第四步
非齐次线性方程组的通解等于相应的齐次线性
方程组的通解和非齐次线性方程组的一个特解的和.
线性代数
6.1.3 向量组和线性方程组
6.1.1 行列式
例3 解线性方程组
x1 x 2 x3 x 4 5 x 2 x x 4 x 2 1 2 3 4 2 x1 3x 2 x3 5 x 4 2 3x1 x 2 2 x3 11x 4 0
线性代数
6.1.1 行列式
线性代数
6.1.2 矩阵和矩阵计算
例4
1 2 3 A 4 5 6 7 8 9 1 B 2 3 1 3 4 0 1 1
求A*B和A.*B
线性代数
6.1.2 矩阵和矩阵计算
Matlab 求解 >> A=[1 2 3;4 5 6;7 8 9]; >> B=[1 -1 0;2 3 1; 3 4 1];
Matlab 求解 >> A= [1 -2 -1 0 2; -2 4 2 6 -6; 2 -1 0 2 3;3 3 3 3 4];
>> rank(A)
ans =3
线性代数
6.1.3 向量组和线性方程组
例8 求下列矩阵列向量组的一个最大无关组
1 2 4 2 A 2 1 3 3 1 2 0 3 2 6 6 2 3 3 4 0
>> A*B
《基于MATLAB的线性代数实用教程》第七章:行列式(1)

a13 a23 a33
a21 a22 a31 a32
a11a22a33 a12a23a31 a13a21a32
a11a23a32 a12a21a33 a13a22a31,
(6)式称为数表(5)所确定的三阶行列式.
a11
a12
a13
D a21 a22 a23 列标 a31 a32 a33 行标 三阶行列式的计算 a11 a12 a13 a11 a12 (1)沙路法 D a21 a22 a23 a21 a22 a31 a32 a33 a31 a32
两式相减消去 x2,得
(a11a22 a12a21)x1 b1a22 a12b2 ;
类似地,消去 x1,得 (a11a22 a12a21)x2 a11b2 b1a21 ,
当 a11a22 a12a21 0 时, 方程组的解为
b1a22 a12b2 a11b2 b1a21 x1 , x2 . a11a22 a12a21 a11a22 a12a21
若记
a12
a13
或
b1 b2 b 1
D1 b2 a22 a23 , b3 a32 a33 a11 a12 a13 D a21 a22 a23 a31 a32 a33
a11 x1 a12 x2 a13 x3 b1 , a21 x1 a22 x2 a23 x3 b2 , a x a x a x b ; 31 1 32 2 33 3 3 b1
D a11a22a33 a12a23a31 a13a21a32 a11a23a32 a12a21a33 a13a22a31 .
(2)对角线法则 a11 a12
matlab利用拉格朗日插值法求解范德蒙行列式

标题:MATLAB利用拉格朗日插值法求解范德蒙行列式一、引言在数值计算中,范德蒙行列式是一种常见的数学问题,在很多实际应用中都能够发挥作用。
而在MATLAB中,利用拉格朗日插值法求解范德蒙行列式是一种常见且有效的方法。
二、范德蒙行列式的定义与特点范德蒙行列式是指由n个数构成的一种特殊形式的行列式,其定义如下:\[ \Delta = \begin{vmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^{n-1} \\ 1 & x_2 & x_2^2 & \cdots & x_2^{n-1} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_n & x_n^2 & \cdots &x_n^{n-1} \end{vmatrix} \]范德蒙行列式有着一些独特的特点,例如行列式的值与数列\[ x_1, x_2, \cdots, x_n \]的排列顺序无关,行列式的任意两列线性相关,行列式的值可以通过拉格朗日插值法来求解等等。
三、拉格朗日插值法的基本原理拉格朗日插值法是一种在数值计算中常用的插值方法,通过已知数据点来求解未知函数值。
其基本原理可以通过以下步骤来描述:1. 假设有n个已知点\[ (x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n) \]2. 利用这些已知点,构造n个基本拉格朗日插值多项式\[ L_k(x) \]3. 最终的插值多项式为\[ P(x) = y_1 L_1(x) + y_2 L_2(x) + \cdots + y_n L_n(x) \]四、MATLAB中的拉格朗日插值法在MATLAB中,可以利用内置的插值函数interp1()来实现拉格朗日插值法。
matlab行列式内多元未知数行列式为0求解

MATLAB中的多元未知数行列式为0求解1. 引言在数学中,行列式是一个非常重要的概念,特别是在线性代数领域。
在实际应用中,我们经常会遇到需要求解多元未知数行列式为0的情况。
在MATLAB中,我们可以利用一些内置函数和工具来进行这样的求解,本文将以MATLAB行列式内多元未知数行列式为0求解为主题,深入探讨其原理和方法,并结合实际例子进行分析和演示。
2. 行列式的基本概念行列式是一个非常基础但又十分重要的概念,它通常用于描述线性变换对空间的扭曲程度。
在MATLAB中,我们可以使用det()函数来计算一个矩阵的行列式值。
对于一个2x2的矩阵:A = [a, b; c, d];detA = a*d - b*c;对于更高阶的矩阵,行列式的计算方式也更为复杂,但同样可以利用MATLAB内置的函数来求解。
3. 多元未知数行列式为0求解的原理当涉及到多元未知数的行列式为0求解时,通常表示我们需要找到一组满足一定条件的未知数取值。
在求解方程组的过程中,我们常常会遇到需要让方程组的系数矩阵的行列式为0的情况。
在MATLAB中,我们可以利用符号计算工具进行求解,例如使用syms()函数定义符号变量,然后通过solve()函数求解方程组。
4. MATLAB中多元未知数行列式为0求解的方法在MATLAB中,我们可以利用符号计算工具箱来解决多元未知数行列式为0的求解问题。
我们需要定义符号变量,然后使用solve()函数求解方程组。
对于一个二元一次方程组:syms x y;eq1 = x + y == 5;eq2 = 2*x - y == 3;[solx, soly] = solve(eq1,eq2,x,y);通过上述代码,我们可以求解出方程组的解。
5. 实际例子分析为了更好地理解在MATLAB中求解多元未知数行列式为0的方法,我们以一个实际例子进行分析。
假设有如下方程组:3x + 2y = 102x - y = 3我们可以通过以下代码来求解:syms x y;eq1 = 3*x + 2*y == 10;eq2 = 2*x - y == 3;[solx, soly] = solve(eq1,eq2,x,y);求解结果为:solx = 4soly = 1通过上述例子,我们可以看到在MATLAB中求解多元未知数行列式为0的方法是非常直观和便捷的。
四阶行列式matlab

四阶行列式matlab
行列式是线性代数中非常重要的概念,在matlab中也有明确的定义。
在matlab中,可以
使用det函数计算四阶行列式。
四阶行列式由4*4矩阵构成,其大小为4x4,其中所有元素都是实数。
要知道行列式的值,可以考虑所有可能的替换交换,每次替换后计算行列式的值,并使用乘法的相反或倒数得
到最终的行列式值。
在matlab中,可以使用det()函数方便的计算出4阶行列式的值。
首先,我们来定义一个
4x4的矩阵,用代码如下:
A = [1, 2, 3, 4;
5, 6, 7, 8;
9, 10, 11, 12;
13, 14, 15, 16];
然后,使用det函数计算这个矩阵的行列式值,其语法如下:
det(A)
复制上面的代码片段,将其粘贴到matlab中,将会得到以下输出:
ans =
从上面可以看出,计算行列式的det函数得到的结果是0,表明这个四阶行列式结果为0。
因此,我们可以清楚的看到,matlab的行列式的计算可以帮助我们快速的得到正确的答案。
matlab固体物理光吸收系数

matlab固体物理光吸收系数【原创实用版】目录1.MATLAB 在固体物理中的应用2.固体物理光吸收系数的概念3.如何使用 MATLAB 计算固体物理光吸收系数4.MATLAB 在计算固体物理光吸收系数时的优势正文一、MATLAB 在固体物理中的应用MATLAB 是一种广泛应用于科学计算和工程设计的语言,尤其在固体物理领域有着重要的作用。
通过 MATLAB,可以方便地进行数值模拟、数据分析以及图像绘制等操作,为科研工作者提供了极大的便利。
二、固体物理光吸收系数的概念固体物理光吸收系数是指在特定波长下,材料单位厚度吸收的光能量与入射光能量之比。
它反映了材料对光的吸收能力,是研究光与材料相互作用的重要参数。
三、如何使用 MATLAB 计算固体物理光吸收系数MATLAB 提供了一系列函数和工具箱来计算固体物理光吸收系数。
通常,可以通过以下步骤进行计算:1.准备材料参数:包括材料的折射率、吸收系数等。
2.建立模型:根据材料的特性和光传播的物理原理,建立数学模型。
3.编写程序:使用 MATLAB 编写程序,根据模型求解光在材料中的传播特性。
4.计算光吸收系数:通过程序计算不同波长下的光吸收系数。
四、MATLAB 在计算固体物理光吸收系数时的优势MATLAB 在计算固体物理光吸收系数时具有以下优势:1.强大的数值计算能力:MATLAB 提供了丰富的数学运算和线性代数操作,能够高效地处理复杂的计算问题。
2.灵活的编程环境:MATLAB 的语法简洁明了,用户可以根据需要编写自定义函数和脚本,方便地进行计算和分析。
3.丰富的工具箱和库:MATLAB 提供了大量的工具箱和库,涵盖了各个领域的知识,方便用户进行专业领域的计算和分析。
4.易于可视化:MATLAB 提供了多种绘图函数,可以将计算结果以直观的形式展现出来,便于用户观察和分析。
综上所述,MATLAB 在固体物理光吸收系数的计算中具有重要的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4*m^2 + 4*n^2)*sin(b*n)*sin(b*m-a*m)
8*m*n*cos(b*n) *cos(a*m-b*m)
方程两边同除以 8*m*n,得(整理格式)
= -(4*m^2 + 4*n^2)*sin(b*n)*sin(a*m-b*m)
m2 n 2 cos(ka) cos(nb) cos[m(a b)] sin(nb)sin[m(a b)] 2mn
即:
8*m*n*cos(a*k) =
(4*m^2 + 4*n^2)*cos(a*m)*sin(b*m)*sin(b*n) - (4*m^2 + 4*n^2)*cos(b*m)*sin(a*m)*sin(b*n) +
8*m*n*cos(b*n)*sin(a*m)*sin(b*m) + 8*m*n*cos(a*m)*cos(b*m)*cos(b*n)
下面建立等式:由 ans=0 可得
8*m*n*cos(a*k) = 4*m^2*cos(a*m)*sin(b*m)*sin(b*n) - 4*m^2*cos(b*m)*sin(a*m)*sin(b*n) +4*n^2*cos(a*m)*sin(b*m)*sin(b*n) 4*n^2*cos(b*m)*sin(a*m)*sin(b*n) + 8*m*n*cos(b*n)*sin(a*m)*sin(b*m) + 8*m*n*cos(a*m)*cos(b*m)*cos(b*n)
[ -(exp(a*m*i - b*m*i)*exp(b*k*i)*(k - m))/exp(a*k*i), -(exp(b*k*i)*(k + m))/(exp(a*m*i + b*m*(-i))*exp(a*k*i)),
(exp(b*k*i)*(k - n))/exp(b*n*i), exp(b*k*i)*exp(b*n*i)*(k + n)]
>> det(B)
ans = -(exp(b*k*2*i)*(m^2*exp(a*k*i) + n^2*exp(a*k*i) - m^2*exp(a*k*i)*exp(b*n*2*i) - n^2*exp(a*k*i)*exp(b*n*2*i) 2*m*n*exp(a*k*i) - m^2*exp(a*m*2*i - b*m*2*i)*exp(a*k*i) - n^2*exp(a*m*2*i - b*m*2*i)*exp(a*k*i) 2*m*n*exp(a*k*i)*exp(b*n*2*i) + m^2*exp(a*m*2*i - b*m*2*i)*exp(a*k*i)*exp(b*n*2*i) + n^2*exp(a*m*2*i b*m*2*i)*exp(a*k*i)*exp(b*n*2*i) + 2*m*n*exp(a*m*2*i - b*m*2*i)*exp(a*k*i) - 4*m*n*exp(a*m*i - b*m*i)*exp(b*n*i) 4*m*n*exp(a*m*i - b*m*i)*exp(a*k*2*i)*exp(b*n*i) + 2*m*n*exp(a*m*2*i - b*m*2*i)*exp(a*k*i)*exp(b*n*2*i)))/(exp(a*m*i b*m*(-i))*exp(a*k*2*i)*exp(b*n*i)) + + +
>> simple(ans)
ans = 8*m*n*cos(a*k) - 4*m^2*cos(a*m)*sin(b*m)*sin(b*n) + 4*m^2*cos(b*m)*sin(a*m)*sin(b*n) - 4*n^2*cos(a*m)*sin(b*m)*sin(b*n) + 4*n^2*cos(b*m)*sin(a*m)*sin(b*n) - 8*m*n*cos(b*n)*sin(a*m)*sin(b*m) - 8*m*n*cos(a*m)*cos(b*m)*cos(b*n)
>> ans*(exp(a*k*2*i + b*k*2*(-i) + a*m*i + b*m*(-i) + b*n*i))
ans = - exp(a*k*i + a*m*2*i - b*m*2*i + b*n*2*i)*(m^2 + 2*m*n + n^2) + exp(a*k*i + b*n*2*i)*(m^2 - 2*m*n + n^2) - m^2*exp(a*k*i) n^2*exp(a*k*i) + exp(a*k*i + a*m*2*i - b*m*2*i)*(m^2 - 2*m*n + n^2) - 2*m*n*exp(a*k*i) + 8*m*n*exp(a*k*i + a*m*i - b*m*i + b*n*i)*cos(a*k)
使用 matlab 辅助计算行列式给出的等式关系
【使用方法简介:matlab 中符号运算拥有强大的功能,方便处理方程组问题。 】 >>syms a b m n k
>> B=[1,1,-1,-1;m,-m,-n,n;exp(i*(m*a-m*b))*exp(i*(-k*a))*exp(i*k*b),exp(-i*(m*a-m*b))*exp(i*(k*a))*exp(i*k*b),-exp(-i*n*b)*exp(i*k*b),-exp(i*n*b)*exp(i*k*b);(m-k)*exp(i*(m*a-m*b))*exp(i*k*a)*exp(i*k*b),-(m+k)*exp(-i*(m*a-m*b))*exp(-i*k*a)*exp(i*k*b),-(n-k)*exp(i*n*b)*exp(i*k*b),(n+k)*exp(i*n*b)*exp(i*k*b)] (声明:在 matlab 中用 m 代替 ,用 n 代替 ;加粗是输入,未加粗是屏幕显示)
B=
[ [ [ 1, m, (exp(a*m*i - b*m*i)*exp(b*k*i))/exp(a*k*i), 1, -m, exp(b*k*i)/(exp(a*m*i + b*m*(-i))*exp(a*k*i)), -1, -n, -exp(b*k*i)/exp(b*n*i), -1] n] -exp(b*k*i)*exp(b*n*i)]
最后,做一下参量替换(用 代替 m,用 代替 n) !
Edit by Luxls.
(消去红色的系数)
>> ans/(exp(a*k*i + a*m*i - b*m*i + b*n*i))
ans = -(exp(a*k*i + a*m*2*i - b*m*2*i + b*n*2*i)*(m^2 + 2*m*n + n^2) - exp(a*k*i + b*n*2*i)*(m^2 - 2*m*n + n^2) + m^2*exp(a*k*i) + n^2*exp(a*k*i) - exp(a*k*i + a*m*2*i - b*m*2*i)*(m^2 - 2*m*n + n^2) + 2*m*n*exp(a*k*i) - 8*m*n*exp(a*k*i + a*m*i - b*m*i + b*n*i)*cos(a*k))/exp(a*k*i + a*m*i + b*m*(-i) + b*n*i)
>> simple(ans)
ans = -(exp(a*k*i + a*m*2*i - b*m*2*i + b*n*2*i)*(m^2 + 2*m*n + n^2) - exp(a*k*i + b*n*2*i)*(m^2 - 2*m*n + n^2) + m^2*exp(a*k*i) + n^2*exp(a*k*i) - exp(a*k*i + a*m*2*i - b*m*2*i)*(m^2 - 2*m*n + n^2) + 2*m*n*exp(a*k*i) - 8*m*n*exp(a*k*i + a*m*i - b*m*i + b*n*i)*cos(a*k))/exp(a*k*2*i + b*k*2*(-i) + a*m*i + b*m*(-i) + b*n*i)