摄影测量后方交会法求解外方位元素
【武汉大学-摄影测量学-单张相片解析】3.5.5单片空间后方交会

cos
0
s
in
0 0 1 0 0 0
1 0 0
X
YZ
R 1 R
R1
X
Y
Z
Xs
Ys Zs
0 R1 0
1
0 0 0
1X X s
0 0
Y Z
Ys Zs
武汉大学
摄影测量基础
偏导数-2-2
X
YZ
R 1
0 0
1
0 0 0
1 X
0 0
R
YZ
c1
X s
X)
f Z 2 (a1Z a3 X )
1
X
Z
(a1 f
f
Z
a3 )
1 Z
a1 f
a3 (x
x0 )
武汉大学
摄影测量基础
偏导数-1
x X s
1 Z
a1 f
a3(x x0 )
x Ys
1 Z
b1 f
b3(x x0 )
x Z s
1 Z
c1 f
c3(x x0 )
y X s
1 Z
c2 c3
0 0 0
a1 a1
a2 a3
bc11
a2 b2 c2
a3 b3 c3
X Y Z
0
aa23cc11
a1c2 a1c3
a1c2 a2c1 0
a3c2 a2c3
a1c3 a2c3
0
a3c1 a3c2
X
YZ
0 bb32
b3 0
b1
b2 b1
0
X
武汉大学
摄影测量基础
误差方程的建立
☺ 已知值 x0 , y0 , f , m, X, Y, Z ☺ 观测值 x, y
双向解析摄影测量

∵ ∴
X 1Y2 − X 2Y1 Y =− 2 X 2 Z1 − X 1Z 2 Z2
BxY1 Y = − 2 N2 X 2 Z1 − X 1Z 2 Z2
Bx (Y1Y2 + Z1Z 2 ) Y22 = −( Z 2 + ) N 2 X 2 Z1 − X 1Z 2 Z2
线性化方程
∂F ∂F ∂F ∂F ∂F ∆µ + ∆ν + ∆ϕ + ∆ω + ∆κ = 0 F =F + ∂µ ∂ν ∂ϕ ∂ω ∂κ
0
∂F = Bx ( X 2 Z1 − X1Z2 ) ∂µ
∂F ≈ B xY1 X 2 ∂φ
∂F = Bx ( X 1Y2 − X 2Y1 ) ∂ν
∂F ≈ − Bx X 2 Z1 ∂κ
X2 ∂ Y 2 0 Z 2 = cos ϕ cos ω ∂κ sin ω
− cos ϕ cos ω 0 − sin ϕ cos ω
− sin ω X 2 − Y2 Y ≈ X sin ϕ cos ω 2 2 0 Z2 0
Bz Z1 = 0 Z2
X 2 x2 Y2 = R y 2 Z − f 2
连续法解析相对定向原理 连续法解析相对定向原理
1 F = Bx X 1 X2
µ
Y1 Y2
ν
Z1 = 0 Z2
∂F ∂F ∂F ∂F ∂F ∆µ + ∆ν + ∆ϕ + ∆ω + ∆κ = 0 F=F + ∂µ ∂ν ∂ϕ ∂ω ∂κ
摄影测量学单像空间后方交会编程实习报告(精品资料).doc

【最新整理,下载后即可编辑】摄影测量学单像空间后方交会编程实习报告班级:130x姓名:xx学号:2013302590xxx指导老师:李欣一、实习目的通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
深入理解单像空间后方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。
了解摄影测量平差的基本过程,掌握空间后方交会的定义和实现算法。
二、实习内容根据学习的单像空间后方交会的知识,用程序设计语言(C++或C语言)编写一个完整的单像空间后方交会程序,通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
三、实习数据已知航摄仪的内方位元素:fk =153.24mm,x=y=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:四、实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。
因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。
可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。
单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,ϕ,ω,κ。
五、 实习流程1. 获取已知数据。
从摄影资料中查取影像比例尺1/m ,平均摄影距离(航空摄影的航高、内方位元素x 0,y 0,f ;获取控制点的空间坐标X t ,Y t ,Z t 。
2. 量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。
第五章双像解析摄影测量

a1 cos cos sin sin sin a2 cos sin sin sin cos a3 sin cos b1 cos sin b2 cos cos b3 sin ; c1 sin cos cos sin sin c2 sin sin cos sin cos ; c3 cos cos 当 0时 : 1 0 0 R 0 1 0 0 0 1
在竖直摄影情况下,将共线方程线性 化,可得:
f x x xy x ( x) dX S dZ S f (1 2 )d d yd H H f f 2 f y xy y y ( y ) dYS dZ S d f (1 2 )d xd H H f f
T T
al bl cl T A L dl el fl
1 T
法方程的解为:
X ( A A) A L
T
三、空间后方交会的具体计算过程
(1) 获取原始数据。从摄影资料中查取平均航高与摄影机主距;从外业 测量成果中获取地面控制点的地面测量,或转换为地面摄影测量坐标。
这里给出一般点坐标:
X mp X sp 1 m N1 X 1 m N1 X 1 Ymp 1 Ysp 1 (m N1Y1 m N2Y2 m by ) 2 1 ( N1Y1 N 2Y2 by ) m 2 Z sp 1 m N1Z1 m f m N1Z1
第五章 摄影测量解析基础
本章主要内容
§5ቤተ መጻሕፍቲ ባይዱ1
像点坐标量测 §5—2 单像空间后方交会 §5—3 立体像对的空间前方交会 §5—4立体像对的 解析法相对定向 §5—5立体像对的 解析法绝对定向 §5—6双像解析的光束法整体解求
摄影测量学3-3

要将空中摄站及影像放到整个的加密网中,起到 点的传递和构网作用,故被称为空中三角测量。
目的:用摄影测量解析法确定区域内所有影像的外方位元素。
摄影测 量 加密
一、 空中三角测量意义:
(1)不需直接触及被量测的目标或物体.凡是在影像上可 以看到的目标,不受地面通视条件限制,均可以测定其位 臵和几何形状; (2)可以快速地在大范围内同时进行点位测定,从而可节 省大量的野外测量工作; (3)摄影测量平差计算时,加密区域内部精度均匀,且很 少受区域大小的影响;
4个平高控制点:4 4 16
n 各待求点:
4 n 4n
3n 12 未知数的个数:
两张像片的外方位元素:
t1
t2
多余观测数: 6 n
n
2 6 12 各待求点: 3 n 3n
3.9光束法双像解析摄影测量
按未知数的类型将误差方程式写成矩阵形式:
V1 A1 V 0 2 0 A2 t1 B1 l1 t 2 B2 l 2 X
• 要点: 1) 空间后方交会-空间前方交会:由于空间后方交会至少需要3 个平高控制点,通常采用4 个平高控制点,按最小二乘平差 方法解算单张像片6 个外方位元素。故该方法不适合; 2) 相对定向-绝对定向:相对定向完成后,绝对定向通常采用3
个平高控制点按最小二乘平差方法解算7 个绝对定向元素。
上述问题中,控制点数量不足以解决该绝对定向问题。故该 方法不适合; • 3) 光束法:上述问题中,2 个平高控制点和1 个高程控制点 可以确定平差的基准,多余观测个数r=(2×6×2)(6×2+3×3)=3>0,故可用该方法解决上述问题。
N12 ) X (u2 N N
摄影测量学后方交会matlab实习报告

摄影测量原理单张影像后方交会实习目录一实习目的 (3)二实习原理 (3)1. 间接平差 (3)2. 共线方程 (3)3. 单向空间后方交会 (4)三计算流程 (4)1. 求解步骤 (4)2.计算机框图 (4)四程序实现 (5)五结果分析 (6)1.外方位元素 (6)2.误差 (6)3.旋转矩阵R (7)六实习体会 (7)1. 平台的选择 (7)2.问题的解决 (7)3.心得体会 (8)七代码展示 (8)一实习目的为了增强同学们对后方交会公式的理解,培养同学们对迭代循环编程的熟悉感,本次摄影测量课间实习内容定为用C语言或其他程序编写单片空间后方交会程序,最终输出像点坐标、地面坐标、单位权中误差、外方位元素及其精度。
已知四对点的影像坐标和地面坐标如下。
内方位元素fk=153.24mm,x0=y0=0。
本次实习,我使用了matlab2014进行后方交会程序实现。
结果与参考答案一致,精度良好。
二实习原理题干中有四个控制点在地面摄影测量坐标系中的坐标和对应的像点坐标,由此可列出8个误差方程,存在2个多余观测(n=2)。
故可利用间接平差的最小二乘法则求解。
由于共线方程是非线性函数模型,为了方便计算,需要将其“线性化”。
但如果仅取泰勒级数展开式的一次项,未知数的近似值改正是不精确的。
因此必须采用迭代趋近法计算,直到外方位元素的改正值小于限差。
1.间接平差间接平差为平差计算最常用的方法。
在确定多个未知量的最或然值时,选择它们之间不存在任何条件关系的独立量作为未知量组成用未知量表达测量的函数关系、列出误差方程式,按最小二乘法原理求得未知量的最或然值的平差方法。
在一个间接平差问题中,当所选的独立参数X个数与必要观测值t个数相等时,可将每个观测值表达成这t个参数的函数,组成观测方程。
函数模型为:L = BX + d。
2.共线方程共线方程是中心投影构像的数学基础,也是各种摄影测量处理方法的重要理论基础。
式中:x,y 为像点的像平面坐标;x0,y0,f 为影像的内方位元素;XS,YS,ZS 为摄站点的物方空间坐标;XA,YA,ZA 为物方点的物方空间坐标;ai,bi,ci (i = 1,2,3)为影像的3 个外方位角元素组成的9 个方向余弦。
摄影测量后方交会VC实现代码及实习报告

摄影测量课间实习单片空间后方交会班级:09031姓名:吴煜晖学号:20093025901232011-10-8一、实习原理单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素XS ,YS,ZS,ψ,ω,κ。
由于空间后方交会所采用的数学模型共线方程是非线性函数,为了便于外方位元素的解求,须首先对共线方程进行线性化,然后进行后方交会,最后在精度评定。
二、实习过程1、实习所用数据本次实习数据采用课本P.44 27题所给数据。
如下图:2、程序流程图及界面设计本程序程序框图如下:本人采用Visual C++6.0编此程序,利用MFC来设计程序。
主程序页面设计如下:子窗口(即进行计算后所得结果页面)设计如下:3、程序代码本程序代码较多,在此讲部分重要代码列出,其余代码参见程序源代码。
对话框类头文件内声明的类成员及函数(后来增加的):public:void houfangjiaohui();double fi,w,k; //影像外方位角double Xs0,Ys0,Zs0; //后方交会所求解double a[3],b[3],c[3];double mx[6],m0;void inv(double *a,int n); /*正定矩阵求逆*/void transpose(double *m1, double *m2, int m, int n); //矩阵转置void mult(double *m1, double *m2, double *result, int i_1, int j_12, int j_2); //矩阵相乘部分核心代码,在此讲后方交会计算代码给出:void CFinalworkDlg::houfangjiaohui(){double t_fk;fi=w=k=0.0;int i; //中间变量double t_x[4],t_y[4],t_X[4],t_Y[4],t_Z[4];//将单位换成米t_x[0]=m_x1/1000.0; t_x[1]=m_x2/1000.0; t_x[2]=m_x3/1000.0;t_x[3]=m_x4/1000.0;t_y[0]=m_y1/1000.0; t_y[1]=m_y2/1000.0; t_y[2]=m_y3/1000.0;t_y[3]=m_y4/1000.0;t_X[0]=m_X1; t_X[1]=m_X2; t_X[2]=m_X3; t_X[3]=m_X4;t_Y[0]=m_Y1; t_Y[1]=m_Y2; t_Y[2]=m_Y3; t_Y[3]=m_Y4;t_Z[0]=m_Z1; t_Z[1]=m_Z2; t_Z[2]=m_Z3; t_Z[3]=m_Z4;Xs0=Ys0=Zs0=0.0;for(i=0;i<4;i++){Xs0+=t_X[i];Ys0+=t_Y[i];}//确定未知数初始值Xs0/=4;Ys0/=4;t_fk=m_fk/1000.0;Zs0=t_fk*m_mk;double x00=m_x00;double y00=m_y00;double A[8*6];double AT[6*8];double ATA[6*6];double L[8];double ATL[6*1];double Xo[4],Yo[4],Zo[4],Xom,Yom,Zom;double Delta[6];while(1){a[0]=cos(fi)*cos(k)-sin(fi)*sin(w)*sin(k);a[1]=-cos(fi)*sin(k)-sin(fi)*sin(w)*cos(k);a[2]=-sin(fi)*cos(w);b[0]=cos(w)*sin(k);b[1]=cos(w)*cos(k);b[2]=-sin(w);c[0]=sin(fi)*cos(k)+cos(fi)*sin(w)*sin(k);c[1]=-sin(fi)*sin(k)+cos(fi)*sin(w)*cos(k);c[2]=cos(fi)*cos(w);for(i=0;i<4;i++){Xom=a[0]*(t_X[i]-Xs0)+b[0]*(t_Y[i]-Ys0)+c[0]*(t_Z[i]-Zs0);Yom=a[1]*(t_X[i]-Xs0)+b[1]*(t_Y[i]-Ys0)+c[1]*(t_Z[i]-Zs0);Zom=a[2]*(t_X[i]-Xs0)+b[2]*(t_Y[i]-Ys0)+c[2]*(t_Z[i]-Zs0);Xo[i]=-t_fk*Xom/Zom;Yo[i]=-t_fk*Yom/Zom;Zo[i]=Zom;A[i*12+0]=(a[0]*t_fk+a[2]*(t_x[i]-x00))/Zo[i];A[i*12+1]=(b[0]*t_fk+b[2]*(t_x[i]-x00))/Zo[i];A[i*12+2]=(c[0]*t_fk+c[2]*(t_x[i]-x00))/Zo[i];A[i*12+3]=(t_y[i]-y00)*sin(w)-cos(w)*(t_fk*cos(k)+((t_x[i]-x00)*cos(k)-(t _y[i]-y00)*sin(k))*(t_x[i]-x00)/t_fk);A[i*12+4]=-t_fk*sin(k)-(t_x[i]-x00)*((t_x[i]-x00)*sin(k)+(t_y[i]-y00)*cos(k ))/t_fk;A[i*12+5]=t_y[i]-y00;A[i*12+6]=(a[1]*t_fk+a[2]*(t_y[i]-y00))/Zo[i];A[i*12+7]=(b[1]*t_fk+b[2]*(t_y[i]-y00))/Zo[i];A[i*12+8]=(c[1]*t_fk+c[2]*(t_y[i]-y00))/Zo[i];A[i*12+9]=-(t_x[i]-x00)*sin(w)-((t_y[i]-y00)*((t_x[i]-x00)*cos(k)-(t_y[i]-y0 0)*sin(k))/t_fk-t_fk*sin(k))*cos(w);A[i*12+10]=-t_fk*cos(k)-(t_y[i]-y00)*((t_x[i]-x00)*sin(k)+(t_y[i]-y00)*cos(k))/t_fk;A[i*12+11]=-(t_x[i]-x00);L[i*2+0]=(t_x[i]-x00-Xo[i]);L[i*2+1]=(t_y[i]-y00-Yo[i]);}transpose(A,AT,8,6);mult(AT,A,ATA,6,8,6);mult(AT,L,ATL,6,8,1);inv(ATA,6);mult(ATA,ATL,Delta,6,6,1);Xs0+=Delta[0];Ys0+=Delta[1];Zs0+=Delta[2];fi+=Delta[3];w+=Delta[4];k+=Delta[5];if((fabs(Delta[0])>0.00001||fabs(Delta[1])>0.00001||fabs(Delta[2])>0.00001|| fabs(Delta[3])>0.00001||fabs(Delta[4])>0.00001||fabs(Delta[5])>0.00001)==0) {double V[8];double s=0.0;mult(A,Delta,V,8,6,1);for(i=0;i<8;i++){V[i]-=L[i];s+=V[i]*V[i];}m0=sqrt(s/2.0); //单位权中误差for(i=0;i<6;i++) //精度评定{mx[i]=sqrt(ATA[7*i])*m0;}break;}}}三、实习结果程序主界面如下:在该界面中,我们可以手动输入各项数据,也可以清空所有数据以及将所有空恢复默认数据(即题目所给数据)。
(完整版)摄影测量作业部分答案

1.什么是摄影测量学,摄影测量发展的三个阶段摄影测量学是对研究的物体进行摄影,测量和解译所获得的影像,获取被摄物体的几何信息和物理信息的一门科学。
三个阶段:模拟、解析、数字摄影测量。
2.根据成图的需要,规定了摄影比例尺后,如何选择航空摄影机与航摄高度?答:采用特宽角航摄机,航高值就小,采用常角或窄角航摄机,航高值就大。
(航高的大小将决定飞机实际升限和最小安全高度的限制,另外,测图的高程测定精度与航高有关(高程中误差与航高成正比))大比例尺单像测图,应选用常角或窄角航摄机,小比例尺立体测图应选用特宽角航摄机。
3.什么是航摄像片的内外方位元素,各有何作用?答:内方位元素包括三个参数,即摄影中心S到像片的垂距(主距)f及像主点o在像框标坐标系中的坐标00,y x,用其来恢复摄影光束。
确定摄影光束在摄影瞬间的空间位置和姿态的参数,称为外方位元素,一张的外方位元素包括六个参数,其中有三个是直线元素,用于描述摄影中心的空问坐标值;另外三个是角元素,用于表达像片面的空间姿态。
4.摄影测量中常用的坐标系有哪些,各有何作用?答:摄影测量中常用的坐标系有两大类。
一类是用于描述像点的位置,称为像方空间坐标系;另——类是用于描述地面点的位置.称为物方空间坐标系。
(1)像方空间坐标系①像平面坐标系像平面坐标系用以表示像点在像平面上的位置,通常采用右手坐标系,xy轴的选择按需要而定.在解析和数字摄影测量中,常根据框标来确定像平面坐标系,称为像框标坐标系。
②像空间坐标系为了便于进行空间坐标的变换,需要建立起描述像点在像空间位置的坐标系,即像空间坐标系。
以摄影中心S为坐标原点,xy,轴与像平面坐标系的xy轴平行,z轴与主光轴重合,形成像空间右手直角坐标系s-xyz③像空间辅助坐标系像点的像空间坐标可直接以像平面坐标求得,但这种坐标的待点是每张像片的像空间坐标系不统一,这给计算带来困难。
为此,需要建立一种相对统一的坐标系.称为像空间辅助坐标系,用s-XYZ表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摄影测量后方交会求外方位元素 09地信一班 肖明梅 解题思路:定义要用到的变量并初始化,定义一个函数用于求解旋转矩阵R,系数矩阵A,近似坐标矩阵JSZB,常数矩阵L;矩阵的转置,逆,矩阵相乘,相减,求外方位元素的近似值初值以及结果输出都定义为相应的函数。最后定义一个用于循环求解的函数(程序中xhqiujie()),在该函数中调用之前定义的函数,求出外方位元素近似值初值,改正数Dv[6,1],误差V[8,1],用do…while语句进行循环,使精度达到20μm,限差低于20μm,然后调用结果输出函数用于输出达到要求的结果。在主函数中创建对象的实例,引用该实例的方法即xhqiujie()函数,就可以求出外方位元素。 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 摄影测量后方交会求外方位元素 { class Program { double ψ, ω, κ, Xs, Ys, Zs, m, f, Sx = 0, Sy = 0; double n = 206265 / 3600;//*角元素的单位从m到度的转换系数*// double[,] zuobiao = {{ -86.15, -53.40, -14.78, 10.46 }, {-68.99, 82.21,-76.63,64.43},{36589.41,37631.08,39100.97,40426.54},{ 25273.32,31324.51,24934.98,30319.81 },{ 2195.17,728.69,2386.50,757.31 }}; double[] a = new double[3];//*存储a1,a2.a3*// double[] b = new double[3];//*存储b1,b2,b3*// double[] c = new double[3];//*存储c1,c2,c3*// double[] XX = new double[4]; double[] YY = new double[4]; double[] ZZ = new double[4]; double[,] L = new double[8, 1]; double[,] JSZB = new double[2, 4];//*像点近似坐标*// double[,] A = new double[8, 6];//*系数阵*// double[,] AT = new double[6, 8]; double[,] AB = new double[6, 6]; double[,] AN = new double[6, 6]; double[,] AL = new double[6, 1]; double[,] Dv = new double[6, 1]; double[,] AX = new double[8, 1];//*系数阵与改正数矩阵的乘积*// double[,] V = new double[8, 1];//*中误差矩阵*// private void Qchuzhi() { for (int i = 0; i < 4; i++) { Sx += zuobiao[2, i]; } for (int i = 0; i < 4; i++) { Sy += zuobiao[3, i]; } for (int i = 0; i < 4; i++) { zuobiao[0, i] = zuobiao[0, i] / 1000; zuobiao[1, i] = zuobiao[1, i] / 1000; } //*求外方位元素初始值*// ψ = ω = κ = 0; m = 50000; f = 0.15324; Xs = Sx / 4; Ys = Sy / 4; Zs = m * f; } //*求旋转矩阵R,像点坐标近似值,常数项矩阵L,系数矩阵A*// private void R() { //旋转矩阵R a[0] = Math.Cos(ψ) * Math.Cos(κ) - Math.Sin(ψ) * Math.Sin(ω) * Math.Sin(κ); a[1] = -Math.Cos(ψ) * Math.Sin(κ) - Math.Sin(ψ) * Math.Sin(ω) * Math.Cos(κ); a[2] = -Math.Sin(ψ) * Math.Cos(ω); b[0] = Math.Cos(ω) * Math.Sin(κ); b[1] = Math.Cos(ω) * Math.Cos(κ); b[2] = -Math.Sin(ω); c[0] = Math.Sin(ψ) * Math.Cos(κ) + Math.Cos(ψ) * Math.Sin(ω) * Math.Sin(κ); c[1] = -Math.Sin(ψ) * Math.Sin(κ) + Math.Cos(ψ) * Math.Sin(ω) * Math.Cos(κ); c[2] = Math.Cos(ψ) * Math.Cos(ω); for (int i = 0; i < 4; i++) { XX[i] = a[0] * (zuobiao[2, i] - Xs) + b[0] * (zuobiao[3, i] - Ys) + c[0] * (zuobiao[4, i] - Zs); YY[i] = a[1] * (zuobiao[2, i] - Xs) + b[1] * (zuobiao[3, i] - Ys) + c[1] * (zuobiao[4, i] - Zs); ZZ[i] = a[2] * (zuobiao[2, i] - Xs) + b[2] * (zuobiao[3, i] - Ys) + c[2] * (zuobiao[4, i] - Zs); //由共线条件方程式求得xo,yo的近似值 JSZB[0, i] = -f * (XX[i]) / (ZZ[i]); JSZB[1, i] = -f * (YY[i]) / (ZZ[i]); //常数项矩阵 L[i * 2, 0] = zuobiao[0, i] - JSZB[0, i]; L[i * 2 + 1, 0] = zuobiao[1, i] - JSZB[1, i]; } for (int i = 0; i < 4; i++) { A[2 * i, 0] = (a[0] * f + a[2] * zuobiao[0, i]) / ZZ[i]; A[2 * i, 1] = (b[0] * f + b[2] * zuobiao[0, i]) / ZZ[i]; A[2 * i, 2] = (c[0] * f + c[2] * zuobiao[0, i]) / ZZ[i]; A[2 * i, 3] = zuobiao[1, i] * Math.Sin(ω) - ((zuobiao[0, i] * (zuobiao[0, i] * Math.Cos(κ) - zuobiao[1, i] * Math.Sin(κ)) / f + f * Math.Cos(κ))) * Math.Cos(ω); A[2 * i, 4] = -f * Math.Sin(κ) - zuobiao[0, i] * (zuobiao[0, i] * Math.Sin(κ) + zuobiao[1, i] * Math.Cos(κ)) / f; A[2 * i, 5] = zuobiao[1, i]; A[2 * i + 1, 0] = (a[1] * f + a[2] * zuobiao[1, i]) / ZZ[i]; A[2 * i + 1, 1] = (b[1] * f + b[2] * zuobiao[1, i]) / ZZ[i]; A[2 * i + 1, 2] = (c[1] * f + c[2] * zuobiao[1, i]) / ZZ[i]; A[2 * i + 1, 3] = -zuobiao[0, i] * Math.Sin(ω) - (zuobiao[1, i] * (zuobiao[0, i] * Math.Cos(κ) - zuobiao[1, i] * Math.Sin(κ)) / f - f * Math.Sin(κ)) * Math.Cos(ω); A[2 * i + 1, 4] = -f * Math.Cos(κ) - zuobiao[1, i] * (zuobiao[0, i] * Math.Sin(κ) + zuobiao[1, i] * Math.Cos(κ)) / f; A[2 * i + 1, 5] = -zuobiao[0, i]; } } //*定义一个函数用来求矩阵的转置*// private void T(double[,] A, double[,] B, int a, int b) { for (int i = 0; i < b; i++) { for (int j = 0; j < a; j++) { B[i, j] = A[j, i]; } } } //*定义一个函数用来求矩阵的乘积*// private void Multiply(double[,] A, double[,] B, double[,] C, int a, int b, int c) { for (int i = 0; i < a; i++) { for (int j = 0; j < c; j++) { C[i, j] = 0; for (int m = 0; m < b; m++) { C[i, j] = A[i, m] * B[m, j] + C[i, j]; } } } } private void substract(double[,] A, double[,] B, double[,] C, int a, int b) { for(int i=0;i