当前位置:文档之家› MATLAB程序北京54转换为WGS84坐标(GPS)

MATLAB程序北京54转换为WGS84坐标(GPS)

MATLAB程序北京54转换为WGS84坐标(GPS)
MATLAB程序北京54转换为WGS84坐标(GPS)

%北京54转换为WGS84坐标(GPS)

%X=3459174.0300 Y=36503163.4500

X=3459181.0255; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%输入X值

Y=36503206.2860; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%输入X值

x=X;

y=Y-fix(Y/1000000)*1000000-500000;

b=x*3600*180/pi/6367558.4969;

T=(cos(b*pi/180/3600))^2;

Bf=b+(50221746+(293622+(2350+22*T)*T)*T)*sin(b*pi/180/3600)*cos(b*pi/180/3600)*3600* 180/pi/10^10;

Q=(cos(Bf*pi/180/3600))^2;

Nf=6399698.902-[21562.267-(108.973-0.612*Q)*Q]*Q;

Z=y/(Nf*cos(Bf*pi/180/3600));

b2=(0.5+0.003369*Q)*sin(Bf*pi/180/3600)*cos(Bf*pi/180/3600);

b3=0.333333-(0.166667-0.001123*Q)*Q;

b4=0.25+(0.16161+0.00562*Q)*Q;

b5=0.2-(0.1667-0.0088*Q)*Q;

B=Bf-[1-(b4-0.12*Z^2)*Z^2]*Z^2*b2*180*3600/pi;

L=[1-(b3-b5*Z^2)*Z^2]*Z*180*3600/pi;

B1=fix(B/3600);

B2=fix((B-B1*3600)/60);

B3=B-B1*3600-B2*60;

L1=fix(L/3600);

L2=fix((L-L1*3600)/60);

L3=L-L1*3600-L2*60;

L4=fix(Y/1000000)*3+L1;

fprintf('\n\n')

fprintf('p点的WGS84坐标:%f\t%f\t%f\t\n',B1,B2,B3)

fprintf('p点的WGS84坐标:%f\t%f\t%f\t\n',L4,L2,L3)

最优化实验报告(单纯形法的matlab程序,lingo程序)

实验一:线性规划单纯形算法 一、实验目的 通过实验熟悉单纯形法的原理,掌握Matlab 循环语句的应用,提高编程的能力和技巧。 二、实验用仪器设备、器材或软件环境 Windows Xp 操作系统 ,Matlab6.5,计算机 三、算法 对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始 基本可行解。设初始基为B,然后执行如下步骤: (1).解B Bx b =,求得1 B x B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量 (2).计算单纯形乘子w , B wB C =,得到1 B w C B -=,对于非基变量,计算判别数 1i i i B i i z c c B p c σ-=-=-,令 max{}k i i i R z c σ∈=-,R 为非基变量集合 若判别数0k σ≤ ,则得到一个最优基本可行解,运算结束;否则,转到下一步 (3).解k k By p =,得到 1 k k y B p -=;若0k y ≤,即k y 的每个分量均非正数,则停止计算,问题不存在有限最优解,否则,进行步骤(4). (4).确定下标r,使 { } :0 min ,0 t r rk tk tk b b tk y y t y y >=>且r B x 为离基变量。 k x 为进基变量,用k p 替换r B p ,得到新的基矩阵B ,返回步骤(1)。 对于极大化问题,可以给出完全类似的步骤,只是确定进基变量的准则不同。对于极大化问题,应令 min{}k k j j z c z c -=-

四、计算框图 是 否 是 否 开始 初始可行解B 令1,0,B N B B x B b b x f c x -==== 计算单纯形乘子1 B w c B -=,计算判别数,i j j wp c j R σ=-∈(非基变量) 令max{,}k j j R σσ=∈ 0?k σ≤ 得到最优解 解方程k k By p =,得到1k k y B p -=。 0?k y ≤ 不存在有限最优解 确定下标r ,是 { }:0 min ,0 t r rk tk tk b b tk y y t y y >=>且 k x 为进基变量,用 k p 替换r B p ,得到新的基矩阵B

基于MATLAB的七参数坐标系统转换问题分析(精)

基于 MATLAB 的七参数法坐标系统转换问题分析 1 张鲜妮 21, ,王磊 21, 1、中国矿业大学环境与测绘学院,江苏徐州 (221008 2、江苏省资源环境信息工程重点实验室,江苏徐州 (221008 E-mail: 摘要:GPS 测量的坐标是基于 WGS-84坐标系下的,而我国实用的测量成果大多都是基于北京 54坐标系下的。随着 GPS 测量技术的广泛使用,由 WGS-84坐标向北京 54坐标系下坐标的转换问题一直是一个可探讨的问题, 坐标系统转换的现有模型很多, 但常用的还是经典的七参数转换模型。随着不断的实践研究, 发现七参数在进行坐标系统转换时有一定的局限性。本文采用 MATLAB 语言编写了七参数法坐标系统转换程序,并对七参数坐标系统转换的若干问题进行了分析讨论。分析结果表明, 小区域范围内用正常高代替大地高对坐标转换精度影响很小; 公共点分布情况对坐标转换精度影响显著; 合适的公共点密度有利于提高坐标转换精度。 关键词:七参数法;坐标系统; MATLAB ;转换问题 1. 引言 随着 GPS 空间定位技术的发展, GPS 技术以其快速、精确、全天候在测量中的应用变的越来越广泛, GPS 成为建立基础控制网的首选手段 ]1[,由于 GPS 系统采用的是 WGS-84坐标系, 是一种地心坐标系, 而我国目前常用的两个坐标系 1954年北京坐标系 (以下称 BJ54 和 1980年国家大地坐标系,是一种参心坐标系,采用克拉所夫斯基椭球为参考椭球,并采用高斯克吕格投影方式进行投影, 我国的国土测量成果和在进行工程施工时大都是基于这两个坐标系下的。所以在利用 GPS 技术进行测量过程中必然存在由 WGS-84坐标向北京 54坐标系下的转换问题。现有的转换模型已经成熟,归纳起来主要有布尔莎 -沃尔夫模型(七参数法、莫洛登斯基 -巴代卡

使用cass进行北京54坐标与西安80坐标相互转换教程

使用cass进行北京54坐标与西安80坐标相互转换教程 北京54坐标和西安80坐标是使用比较多的,有的时候涉及到这两个坐标系的转换,我们在这里介绍一下使用cass来进行互转的方法。当然还有其他的方法,比如利用COORD4.1进行坐标转换。COORD 4.1是一个免费的坐标转换软件,也是测绘工作者常备的工具之一。以后有机会再来介绍。先跟大家介绍如何使用cass来进行坐标系的互转。 第一步:输入公共点坐标数据 首先准备好2至3个公共点,即同时拥有54和80两套坐标,这些点要覆盖要转换数据所在在地区。然后打开CASS2008,选择“地物编辑”菜单下的“坐标转换”进入坐标转换界面,在“公共点”下面“转换前”后面的三个输入框中输入第一个公共点的54坐标, 再在“转换后”的三个输入框中输入该点的80西安坐标, 输完点击右侧“添加”按钮, 依次输入第二、第三个点的“54、80坐标并添加;如果经常在此区域进行坐标转换,可点击“存到公共点文件”,输入文件存储路径及文件名称,保存,下次使用时直接读入公共点文件即可。 第二步:输入转换前、后的数据文件名 在“转换前”右侧的输入框中输入转换前即54坐标数据的文件路径及文件名,也可以直接点击最右侧的查找按钮直接查找,然后在“转换后”右侧的输入框中输入转换后的文件名。 第三步:计算转换参数 如果用仅有两个已知点,可以计算四参数,三个或三个以上已知点则可以计算七参数。利用四参数转换就点击“计算转换四参数”按钮,如果用七参数转换还需选择转换前、后的坐标系统及转换点所在的中央子午线,点击“计算转换七参数”,软件就自动计算出了七参数。 第四步:进行数据转换 如果转换的是数据就把“转换数据”前面的对勾选上,点击“使用七参数”,即完成了数据的转换,当然也可点击“使用四参数”,完成转换。 补充:北京54坐标与西安80坐标转换原理 北京54坐标与西安坐标之间的转换其实是一种椭球参数的转换,作为这种转换在同一个椭球里的转换都是严密的,而在不同的椭球之间的转换是不严密的,因此不存在一套转换参数可以全国通用,也没有现成的公式来完成转换因此必须利用具有两套坐标值的公共点实现转换。

优化设计方法的发展与应用情况

优化设计方法的发展与应用情况 贾瑞芬张翔 (福建农林大学 机电工程学院, 福建 福州 350002) 摘 要:本文概要地介绍了优化设计方法在国内近年的应用和发展情况,包括传统优化方法、现代优化方法,以及优化软件的应用和发展情况。  关键词:优化 遗传算法 神经网络 MATLAB 优化方法是20世纪60年代随着计算机的应用而迅速发展起来的,较早应用于机械工程等领域的设计。80年代以来,随着国内有关介绍优化设计方法的专著(如《机械优化设计》[1])的出版和计算机应用的普及,优化设计方法在国内的工程界得到了迅速的推广。本文按传统优化方法、现代优化方法、优化软件应用等三个方面,概要地介绍优化设计方法近年来在国内工程界的应用和发展情况。 1. 传统优化方法的应用与改进情况  1.1传统优化方法的应用  从近10年发表的工程优化设计的论文可以看出,罚函数法、复合形法、约束变尺度法、随机方向法、简约梯度法、可行方向法等,都有较为广泛的应用。对重庆维普信息数据库中的工程技术类刊物做检索,1993年至2003年,这6种约束优化方法应用的文献检出率的比例,依次约为12:10:3:1.5:1.5。 以机械设计为例,传统优化方法主要应用于机构和机械零部件的优化设计,主要对零件或机构的性能、形状和结构进行优化。在结构方面,如对升降天线杆的结构优化设计[2],采用内点罚函数法优化,在保证天线杆具有足够的刚度和压弯组合强度的前提下所设计出的结构尺寸比按一般的常规设计方法所计算的尺寸要小,自重更轻。在形状方面,赵新海等[3]对一典型的轴对称H型锻件的毛坯形状进行了优化设计,取得了明显的效果。在性能方面,《凸轮一连杆组合机构的优化设计》[4]一文以最大压力角为最小做为优化目标、并采用坐标轮换法和黄金分割法等优化方法对书本打包机中的推书机构(凸纶—连杆组合机构)进行优化设计,从而使得机构确保运动的平衡性的前提下具有良好的传力性能,使设计结果更加合理。《弹性连杆机构结构和噪声控制一体化设计》[37]一文,利用改进的约束变尺度法,求解基于噪声控制的弹性连杆机构结构控制同步优化问题,同步优化后机构的声辐射性能指标具有明显改善。由以上的例子可以看出,因此,传统优化方法仍然具有不可忽视的作用。  将优化技术与可靠性理论相结合,形成了可靠性优化设计法。按照可靠性优化设计法设计的产品,既能定量地回答产品在运行中的可靠性,又能使产品的功能参数获得优化解,两种方法相辅相成,是一种非常具有工程实用价值的设计方法。如采用惩罚函数内点法求解齿轮传动的可靠性优化设计的数学模型[5],以及运用二阶矩法和约束随机方向法对钢板弹簧进行可靠性优化设计[6]。 1.2传统优化方法的一些改进  目前,随着工程问题的日益扩大,优化要面对的问题的规模和复杂程度在逐渐增大,传统的优化方法解决这些问题时,就显露出了其局限性与缺陷。于是就出现了在分析现有算法的基础上,针对方法的不足或应用问题而作出的改进。  1.2.1对传统优化方法应用于离散变量优化的改进 工程设计问题中,经常遇到设计变量必须符合本行业的设计规范和标谁,只能取为限定的离散值或整数值的情况。若应用连续变量优化方法.得到最优解后再作简单的圆整处理,可能造成设计上的不可行解,或得到一个非最优解。为此适用于变量取离散值的优化方法发展起来。朱浩鹏等[7]提出了改进的动态圆整法、拉格朗日松弛法。 惩罚函数优化方法是一种常用的求解约束非线性问题的方法,但它仅限于求解连续变量的优化问题。

单纯形法matlab

数 学 软 件 与 实 验 数学与信息科学学院 信息与计算科学

单纯形法的Matlab程序如下:function [xx,fm]=myprgmh(m,n,A,b,c) B0=A(:,1:m); cb=c(:,1:m); xx=1:n; sgm=c-cb*B0^-1*A; h=-1; sta=ones(m,1); for i=m+1:n if sgm(i)>0 h=1; end end while h>0 [msg,mk]=max(sgm); for i=1:m sta(i)=b(i)/A(i,mk); end [mst,mr]=min(sta); zy=A(mr,mk); for i=1:m

if i==mr for j=1:n A(i,j)=A(i,j)/zy; end b(i)=b(i)/zy; end end for i=1:m if i~=mr for j=1:n A(i,j)=A(i,j)-A(i,mk)*A(mr,j); end b(i)=b(i)-A(i,mk)*b(mr); end end B1=A(:,1:m); cb(mr)=c(mk); xx(mr)=mk; sgm=c-cb*B1*A; for i=m+1:n if sgm(i)>0 h=1;

end end end fm=c*xx; 例题: 编写下列求解如下线性规划问题的单纯形法函数min f'x s.t ax<=b(其中b>=0) 函数形式function [x,fval,it,op]=singl(f,a,b) 输出中x为最优解 fval为最优值 it为迭代次数 无最优解op=0 有最优解op=1 编写程序如下: function [x,fval,it,op]=singl(f,a,b) [m,n]=size(a); c=[a eye(m) b;f' zeros(1,m+1)]; fval=0; x=zeros(m+n,1); op=1; it=0; e=zeros(1,m); lie=find(f<0); l=length(lie); while(l>0) for j=1:l d=find(c(:,lie(j)));

用MATLAB实现共轭梯度法求解实例

用MATLAB 实现共轭梯度法求解实例 康福 1 一.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为最小,它 们都属于约束优化问题。但是为什么要研究无约束优化问题? (1)有些实际问题,其数学模型本身就是一个无约束优化问题。 (2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。 (3)约束优化问题的求解可以通过一系列无约束优化方法来达到。所以无约束优 化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。 (4)对于多维无约束问题来说,古典极值理论中令一阶导数为零,但要求二阶可 微,且要判断海赛矩阵为正定才能求得极小点,这种方法有理论意义,但无 实用价值。和一维问题一样,若多元函数F(X)不可微,亦无法求解。但古典 极值理论是无约束优化方法发展的基础。 1.2共轭梯度法 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向 上的差别。 (1)间接法——要使用导数,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度 法等。 (2)直接法——不使用导数信息,如坐标轮换法、鲍威尔法单纯形法等。 用直接法寻找极小点时,不必求函数的导数,只要计算目标函数值。这类方 法较适用于解决变量个数较少的(n ≤20)问题,一般情况下比间接法效率低。间接法除要计算目标函数值外,还要计算目标函数的梯度,有的还要计算其海赛矩阵。 搜索方向的构成问题乃是无约束优化方法的关键。 共轭梯度法是沿着共轭方向进行搜索,属于共轭方向法中的一种,该方法中 每一个共轭向量都是依赖于迭代点处的负梯度而构造出来。共轭梯度法作为一种实用的迭代法,它主要有下面的优点: (1)算法中,系数矩阵A的作用仅仅是用来由已知向量P 产生向量W=AP ,这不仅 可充分利用A的稀疏性,而且对某些提供矩阵A较为困难而由已知向量P 产 生向量W=AP 又十分方便的应用问题是很有益的。 (2)不需要预先估计任何参数就可以计算,这一点不像SOR 等; (3)每次迭代所需的计算,主要是向量之间的运算,便于并行化。 共轭梯度法原理的知识较多,请详见《机械优化设计》第四章的第四、五节。 图1为共轭梯度法的程度框图 1(0,1,2,) k k k k s k α+=+=x x

matlab单纯形法

%求解标准型线性规划:max c*x;s.t. A*x=b;x>=0 %本函数中的A是单纯初始表,包括:最后一行是初始的检验数,最后一列是资源向量b %N是初始的基变量的下标 %输出变量sol是最优解 %输出变量val是最优值,kk是迭代次数 function [sol,val,kk]=ssimplex(A,N) [mA,nA]=size(A); kk=0; %迭代次数 flag=1; while flag kk=kk+1; if A(mA,:)<=0 %已找到最优解 flag=0; sol=zeros(1,nA-1);%给每个变量赋初值0 for i=1:mA-1 sol(N(i))=A(i,nA);%给基变量赋新值(替换0) end %给出最优解 val=-A(mA,nA); else for i=1:nA-1 if A(mA,i)>0&A(1:mA-1,i)<=0 %问题有无界解 disp('have infinite solution!'); flag=0; break; end end if flag %还不是最优表,进行转轴运算 temp=0; for i=1:nA-1 if A(mA,i)>temp temp=A(mA,i); inb=i; % 进基变量的下标 end end %选择最大检验数纵向对应的变量为进基变量 sita=zeros(1,mA-1); for i=1:mA-1 if A(i,inb)>0 sita(i)=A(i,nA)/A(i,inb); end end temp=inf; for i=1:mA-1 if sita(i)>0&sita(i)

MATLAB中的abc dq相坐标变换

坐标变换总结 姓名: 日期:2011.11.4

坐标变换的总结 一.由三项坐标系变换到两相旋转坐标系 1.三相到两相静止坐标系的变换首先,确定三相电压的相序: cos() 2cos()34cos()3A m B m c m u U wt u U wt u U wt ππ==- =- 在坐标图上表示三相到两相静止坐标系上的变换,如图所示: 图13-2s 变换 由上图,我们可以将A u 、B u 、c u 转化到两相静止坐标系上,具体等式如下: 211()3222()322A B C B C u u u u u αβ?=--????=-?? 插入系数2、 3是为了保证两相坐标系中合成矢量的模与各相电压的模相同。后面会推导为什么可以保证模不变。 整理成状态方程的形式,如下: 1112223022A B C u u u u u αβ????-- ???????=?????????-??????2.两相静止坐标系到两相旋转坐标系的变换 我们知道,在两相静止坐标系中,合成矢量是旋转的,我们令旋转坐标系的d 轴与旋转矢量重合,则可将其转换到旋转坐标系中。坐标变换如图所示:

图22s-2r 变换 此时,我们可以得到,两相静止坐标系到两相旋转坐标系的公式,其中θ一般取为A 相的相角。 cos sin sin cos d q u u u u αβθθθθ??????=??????-???? ??二.反向变换 1.若需要将旋转坐标系转化到静止坐标系上,只需相应的将d-q 向αβ-投影即 可,根据图二,我们可以得到: cos sin sin cos d q u u u u αβθθθθ????-??=???????????? 2.同理,根据图1,我们可以将αβ-分别投影到A 、B 、C 上,获得其逆变换: 102133221322A B C u u u u u αβ??????????????=-???????????????--???? 三.关于乘以2/3保持模不变的问题首先,我们已经能够确定了电压相序 cos() 2cos()34cos()3A m B m c m u U wt u U wt u U wt ππ==- =-经过变换后: 211()322 A B c u u u u α=--

matlab编程实现二分法,牛顿法,黄金分割法,最速下降matlab程序代码

用二 4224min ()f t t t t =--[,.]t ∈内的极小值点,要求准 1. function [t d]=erfenfa(a,b) k=1; %记录循环次数 while abs(a-b)>0.0005 c=(a+b)/2; C(k)=c; %存储每次循环中点c 的值 if ff(c)<0 a=c; end if ff(c)==0 t1=c; break ; end if ff(c)>0 b=c; end k=k+1; end t=(a+b)/2; %最终符合要求的值 d=f(t); %最优解 C k function y=f(t) y=t^4-2*t^2-4*t; function y=ff(t) y=4*t^3-4*t-4; 运行结果 >> [t d]=erfenfa(1,1.5) C = Columns 1 through 9 1.2500 1.3750 1.3125 1.3438 1.3281 1.3203 1.3242 1.3262 1.3252 Column 10 1.3247 k = 11

t = 1.3250 d = -5.7290 2.黄金分割法 f (x)=x3-2x+1 初始区间[0, 3],收敛精度0.5 function [t,f]=huangjinfenge(a,b) m=1-(sqrt(5)-1)/2; t2=a+m*(b-a) f2=g(t2); t1=a+b-t2 f1=g(t1); while abs(t1-t2)>0.5 if f1 [t,f]=huangjinfenge(0,3) t2 = 1.1459 t1 = 1.8541

单纯形法matlab程序

算法实现与分析 算法1.单纯形法 具体算例: 标准化后: 用单纯形法求解,程序如下: clear clc M=1000000; A=[3,2,-3,1,0;1,-2,1,0,1];%系数矩阵 C=[-3,1,2,M,M,0];%价值矩阵 B=[6;4]; Xt=[4 5]; for i=1:length(C)-1 D=0; for j=1:length(Xt) D=D+A(j,i)*C(Xt(j)); end xi(i)=C(i)-D; end s=[]; for i=1:length(xi) if xi(i)<0 s=[s,i]; end end f=length(s); h=1; while(f) for k=1:length(s) j=1; A x=[]; for i=1:length(Xt) if A(i,s(k))>0 x(j)=i;

j=j+1; end end x if(length(x)+1==1) break; end y=1 x for i=1:length(x) if B(x(i))/A(x(i),s(k))

南方CASS坐标转换方法

南方CASS坐标转换方法 摘要本文介绍了1954年北京坐标系、1980西安坐标系及其相互关系、转换原理及利用软件进行数据转换的两种方法。 关键词:坐标系坐标转换方法 近几年来,在测绘行政主管部门的推动下,我国西安80坐标系正在逐步得到使用,第二次全国土地调查已明确要求平面控制使用80西安坐标系统,省级基础测绘成果1:10000地形图也采用了1980西安坐标系,现有1954年北京坐标系将逐渐向1980西安坐标系过渡,但是,五十年来,我国在1954年北京坐标系下完成的大地控制及基本系列地形图数量巨大,价值巨大,必须充分利用。在当前测绘生产中既存在将54系转成80系的问题,也有相反的情况。

一、北京54坐标系、西安80坐标系及其相互关系 1954年北京坐标系是我国五十年代由原苏联1942年普尔科沃坐标系传算而来,采用克拉索夫斯基椭球体,其参数为:长半轴为6378245米,扁率为1/298.3。这个坐标系的建立在我国国民经济和社会发展中发挥了巨大的作用,但该坐标系存在着定位后的参考椭球面与我国大地水准面不能达到最佳拟合,在中国东部地区大地水准面差距自西向东增加最大达+68米;其椭球的长半轴与现代测定的精确值相比109米的缺陷;定向不明确,椭球短轴未指向国际协议原点CIO,也不是中国地极原点JYD1968.0;起始大地子午面也不是国际时间局BIH所定义的格林尼治平均天文台子午面。同时,该系统提供的大地点坐标是通过局部平差逐级控制求得的,由于施测年代不同、承担单位不同,不同锁段算出的成果相矛盾,给用户使用带来困难。 1978年4月,中国在西安召开了全国天文大地网平差会议,在会议上决定建立中国新的国家大地坐标系,有关部门根据会议纪要,开展并进行了多方面的工作,建成了1980西安国家大地坐标系(GDZ80),该坐标系全面描述了椭球的4个基本参数,同时反映了椭球的几何特性和物理特性,这4个参数的数值采用的是1975年国际大地测量与地球物理联合会第16届大会的推荐值(简称IGA-1975椭球) 。其主要参数为:长半轴为6378140 米,扁率为1/298.257。IAG-1975椭球参数精度较高,能更好地代表和描述地球的几何形状和物理特征。在其椭体定位方面,以我国范围内高程异常平方和最小为原则,做到了与我国大地水准面较好的吻合。

0.618法的matlab实现

实验报告 实验题目: 0.618法的MATLAB实现学生姓名: 学号: 实验时间: 2013-5-13

一.实验名称: 0.618法求解单峰函数极小点 二.实验目的及要求: 1. 了解并熟悉0.618法的方法原理, 以及它的MATLAB 实现. 2. 运用0.618法解单峰函数的极小点. 三.实验内容: 1. 0.618法方法原理: 定理: 设f 是区间],[b a 上的单峰函数, ] ,[ ,)2()1(b a x x ∈, 且)2()1(x x <. 如果)()()2()1(x f x f >, 则对每一个],[)1(x a x ∈, 有)()()2(x f x f >; 如果)()()2()1(x f x f ≤, 则对每一个] ,[) 2(b x x ∈, 有)()()1(x f x f ≥. 根据上述定理, 只需选择两个试探点, 就可将包含极小点的区间缩短. 事实上, 必有 如果)()()2()1(x f x f >, 则],[)1(b x x ∈; 如果)()() 2()1(x f x f ≤, 则][)2(x a x ,∈. 0.618 法的基本思想是, 根据上述定理, 通过取试探点使包含极小点的区间(不确定区间)不断缩短, 当区间长度小到一定程度时, 区间上各点的函数值均接近极小值, 因此任意一点都可作为极小点的近似. 0.618 法计算试探点的公式: ). (618.0),(382.0k k k k k k k k a b a a b a -+=-+=μλ 2. 0.618法的算法步骤: ①置初始区间],[11b a 及精度要求0>L , 计算试探点1λ和1μ, 计算函数值)(1λf 和)(1μf . 计算公式是 ).(618.0 ),(382.011111111a b a a b a -+=-+=μλ 令1=k . ②若L a b k k <-, 则停止计算. 否则, 当)()(k k f f μλ>时, 转步骤③; 当)()(k k f f μλ≤时, 转步骤④. ③置k k a λ=+1, k k b b =+1, k k μλ=+1,)(618.01111++++-+=k k k k a b a μ, 计算函数值)(1+k f μ, 转步骤⑤.

运用Matlab进行线性规划求解(实例)

线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 8.2.1 基本数学原理 线性规划问题的标准形式是: ????? ??????≥=+++=+++=++++++=0,,,min 21221122222121112 121112211n m n mn m m n n n n n n x x x b x a x a x a b x a x a x a b x a x a x a x c x c x c z 或 ???? ?????=≥===∑∑==n j x m i b x a x c z j n j i j ij n j j j ,,2,1,0,,2,1,min 1 1 写成矩阵形式为: ?? ???≥==O X b AX CX z min 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b 非负。不符合这几个条件的线性模型可以转化成标准形式。 MATLAB 采用投影法求解线性规划问题,该方法是单纯形法的变种。 8.2.2 有关函数介绍 在MATLAB 工具箱中,可用linprog 函数求解线性规划问题。 linprog 函数的调用格式如下: ●x=linprog(f,A,b):求解问题minf'*x ,约束条件为A*x<=b 。 ●x=linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即Aeq*x=beq 。若没有不等式约束,则令A=[ ],b=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub):定义设计x 的下界lb 和上界ub ,使得x 始终在该范围内。若没有等式约束,令Aeq=[ ],beq=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用options 指定的优化参数进行最小化。 ●[x,fval]=linprog(…):返回解x 处的目标函数值fval 。 ●[x,lambda,exitflag]=linprog(…):返回exitflag 值,描述函数计算的退出条件。 ●[x,lambda,exitflag,output]=linprog(…):返回包含优化信息的输出参数output 。 ●[x,fval,exitflag,output,lambda]=linprog(…):将解x 处的拉格朗日乘子返回到lambda 参数中。

基于MATLAB的鲍威尔法求极值问题

基于MATLAB的鲍威尔法求极值问题 姓名:xxx 学号:xxx (北京理工大学机械与车辆学院车辆工程,北京 100081) 摘要:无约束优化方法主要有七种,按照求导与否把这些方法分为间接法和直接法。牛顿法的成败与初始点选择有极大关系,其可靠性最差;坐标轮换法、单纯形法和最速下降法对于高维优化问题计算效率很低,有效性差;由于编制变尺度法程序复杂,其简便性不足。综合考虑后,鲍威尔法、共轭梯度法具有较好的综合性能。本文首先对鲍威尔法的原理进行阐述,根据其迭代过程给出流程图,并编写MATLAB程序。最后用此MATLAB程序求解实际的极值问题,并对求解结果进行简要分析。 1.鲍威尔法的基本思想 1.1其他优化方法对鲍威尔法形成的影响 通过对鲍威尔法的学习,可以很明显看出来其迭代思想中汲取了其他几种优化方法的核心思想。为了更全面、更深入的学习鲍威尔法,很有必要对其他有影响的优化思想进行学习和梳理。 由最基本的数学基础知识可知,梯度方向是函数增加最快的方向,负梯度方向是函数下降最快的方向,于是,利用这个下降最快方向产生了最速下降法。每次迭代都沿着负梯度方向进行一维搜索,直到满足精度要求为止。其特点是相邻两个搜索方向互相正交,所以很明显的一个现象就是刚开始搜索步长比较大,愈靠近极值点其步长愈小,收敛速度愈慢,特别当二维二次目标函数的等值线是较扁的椭圆时,迭代速度更慢。这时,倘若目标函数是等值线长、短轴都平行于坐标轴的椭圆形,则通过坐标轮换法可以很高效的解决问题。通过两次分别沿坐标轴进行一维搜索,便可达到极值点。但对于目标函数的等值线椭圆的长、短轴倾斜于坐标轴时,坐标轮换法的搜索效率也显得极低。抛开这两种特殊情况,对于一般形态的目标函数,如果在某些明显可以直达最优点的情况下(一般为靠近极

单纯形法MATLAB程序

单纯形法(Matlab 程序) %%单纯形法( Matlab 程序) a=input('input the major matrix A '); b=input('input the matrix b '); n=input('input the judgement '); %%为计数器(确定循环次数) g=0; while g<40 %%确定非负 alength=max(size(n)); blength=max(size(b)); m=0; for i=1:alength if n(i)>=0 m=m+1; end end; if m==alength x=b; break end; %%找 K s=min(n); for i=1:alength if n(i)==s k=i; break end; end; %%a[i,k] 的非负性 m=0; for i=1:blength if a(i,k)<0 m=m+1; end; end; if m==blength

disp('x does not exit'); judge=1; break end; %%找 L 确定主元 cc=100000; for i=1:blength if a(i,k)>0 if (b(i)/a(i,k))< cc cc=b(i)/a(i,k); end end end; for i=1:blength if a(i,k)~=0 if (b(i)/a(i,k))==cc l=i; break end end end; %%计算 ,a 标准化 zu=a(l,k); aa=a; for i=1:l-1 for j=1:alength aa(i,j)=a(i,j)- a(l,j)*a(i,k)/a(l,k); end end; for i=l+1:blength for j=1:alength aa(i,j)=a(i,j)- a(l,j)*a(i,k)/a(l,k); end end; for j=1:alength aa(l,j)=a(l,j)/zu; end; %%b勺判别 bb=b; bb(l)=b(l)/zu; for i=1:l-1 bb(i)=b(i)- b(l)*a(i,k)/a(l,k); end; for i=l+1:blength bb(i)=b(i)- b(l)*a(i,k)/a(l,k); end; b=bb; %%确定判别数

北京54坐标系转换工具

北京54坐标系转换工具 利用ARCGIS进行自定义坐标系和投影转换 ARCGIS种通过三参数和其参数进行精确投影转换 注意:投影转换成54坐标系需要下载无偏移卫星图像进行转换,有偏移的转换将导致转换后的卫星图像扭曲,坐标错误,无法配准。 第一步:选择无偏移地图源,下载你所需要的卫星图像。 第二步:选择BIGEMAP软件右边工具栏,选择【投影转换】,如下图所示: 2.1 选择说明: 1. 源文件:选择下载好的卫星图像文件(下载目录中后缀为tiff的文件) 2. 源坐标系:打开的源文件的投影坐标系(自动读取,不需要手动填写) 3. 输出文件:选择转换后你要保持文件的文件路径和文件名 4. 目标坐标系:选择你要转换成的目标坐标系,如下图:

选择上图的更多,如下图所示: 1:选择 -Beijing 1954 2:选择地区3:选择分度带对应的带号(一般默认,也可以手动修改)

选择对应的分度带或者中央子午线(请参看:如何选择分度带?),点击【确定】 5. 重采样算法:投影转换需要将影像的像素重新排列,一次每种算法的效率不一样,一般选择【立方卷积采样】,以达到最好的效果。如下图: 6. 指定变换参数:在不知道的情况下,可以不用填此处信息,如果√上,则如下图:

此参数为【三参数】或者【七参数】,均为国家保密参数,需要到当地的测绘部门或者国土部门,以单位名义签保密协议进行购买,此参数各地都不一样,是严格保密的,请不要随便流通。 第三步:点击【确定】,开始转换,如下图:

第四步:完成后,打开你刚才选择的输出文件夹,里面就是转换后的卫星图像。 第五步:如果你需要套合你手里已经有的矢量文件,请参看:【BIGEMAP无偏移影像叠加配准】

多目标线性规划的若干解法及MATLAB实现

多目标线性规划的若干解法及MATLAB 实现 一.多目标线性规划模型 多目标线性规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函 数,其数学模型表示为: 11111221221122221122max n n n n r r r rn n z c x c x c x z c x c x c x z c x c x c x =+++??=+++?? ??=+++? (1) 约束条件为: 1111221121122222112212,,,0 n n n n m m mn n m n a x a x a x b a x a x a x b a x a x a x b x x x +++≤??+++≤?? ??+++≤?≥?? (2) 若(1)式中只有一个1122i i i in n z c x c x c x =+++ ,则该问题为典型的单目标线性规划。我们记:()ij m n A a ?=,()ij r n C c ?=,12(,,,)T m b b b b = ,12(,,,)T n x x x x = , 12(,,,)T r Z Z Z Z = . 则上述多目标线性规划可用矩阵形式表示为: max Z Cx = 约束条件:0 Ax b x ≤?? ≥? (3) 二.MATLAB 优化工具箱常用函数[3] 在MA TLAB 软件中,有几个专门求解最优化问题的函数,如求线性规划问题的linprog 、求有约束非线性函数的fmincon 、求最大最小化问题的fminimax 、求多目标达到问题的fgoalattain 等,它们的调用形式分别为: ①.[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub) f 为目标函数系数,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下 限和上限, fval 求解的x 所对应的值。 算法原理:单纯形法的改进方法投影法 ②.[x,fval ]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub ) fun 为目标函数的M 函数, x0为初值,A,b 为不等式约束的系数, Aeq,beq 为等式约束

基于matlab的坐标正反算

测量程序设计实验报告 实验名称:坐标正反算

实验三坐标正反算 一、实验目的 编写坐标正反算程序,并对格式化文件数据进行计算,验证程序。 二、实验内容 1、编写坐标正算程序 1)建立以xy_direct命名的函数,函数输入输出格式为 [x2,y2] = xy_direct(x1,y1,distance, azimuth) 度转度分秒: >> function dms= degree2dms(jiaodu) >>degree = fix(jiaodu); >>mimute = fix((jiaodu-degree)*60); >>second = ((jiaodu-degree)*60-mimute)*60; >>dms = degree+mimute/100+second/10000; 度分秒转度: >> function degree = dms2degree(jiaodu) >>degree = fix(jiaodu); >> mimute = fix((jiaodu-degree)*100); >>second = (jiaodu-degree-mimute/100)*10000; >>degree = degree+mimute/60+second/3600; 弧度转度: >> function dms=rad2dms(rad) >> rad=abs(rad); >>jiaodu=rad*180.0/pi; >> % l=fix(a) >> % b=(a-l)*60.0 >> % m=fix(b) >> % a=l+m/100.0+(b-m)*0.006

WGS84经纬度坐标到北京54高斯投影坐标的转换

使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换 张兢1 王文瑞2 陈溪1 (1.广西第一测绘院广西南宁530023; 2.南宁市勘测院广西南宁530022) 【摘要】本文针对从事测绘工作者普遍遇到的坐标转换问题,简要介绍ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标转换原理和步骤。 【关键词】ArcGIS 坐标转换投影变换 1 坐标转换简介 坐标系统之间的坐标转换既包括不同的参心坐标之间的转换,或者不同的地心坐标系之间的转换,也包括参心坐标系与地心坐标系之间的转换以及相同坐标系的直角坐标与大地坐标之间的坐标转换,还有大地坐标与高斯平面坐标之间的转换。在两个空间角直坐标系中,假设其分别为O--XYZ和O--XYZ,如果两个坐标系的原来相同,通过三次旋转,就可以两个坐标系重合;如果两个直角坐标系的原点不在同一个位置,通过坐标轴的平移和旋转可以取得一致;如果两个坐标系的尺度也不尽一致,就需要再增加一个尺度变化参数;而对于大地坐标和高斯投影平面坐标之间的转换,则需要通过高斯投影正算和高斯投影反算,通过使用中央子午线的经度和不同的参考椭球以及不同的投影面的选择来实现坐标的转换。 如何使用ArcGIS实现WGS84经纬度坐标到BJ54高斯投影坐标的转换?这是很多从事GIS工作或者测绘工作者普遍遇到的问题。本文目的在于帮助用户解决这个问题。 我们通常说的WGS-84坐标是指经纬度这种坐标表示方法,北京54坐标通常是指经过高斯投影的平面直角坐标这种坐标表示方法。为什么要进行坐标转换?我们先来看两组参数,如表1所示: 表1 BJ54与WGS84基准参数

坐标轮换法matlab程序

现代设计方法及其应用matlab程序作业() 源程序: %坐标轮换法 clear e=input('输入精度要求e:'); X=input('输入初始点:'); syms t s a=10*X(1,1)^2+106*X(2,1)^2+10*X(1,1)*X(2,1)+96*X(1,1)+100*X(2,1); k=1; e1=[1;0]; e2=[0;1]; A=X; %A矩阵用于存储每一轮变换所得解 C=X+t*e1; %沿e1方向搜索 x1=C(1,1); x2=C(2,1); df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2); t=solve(df); X=X+t*e1; C=X+s*e2; %沿e2方向搜索 x1=C(1,1); x2=C(2,1); df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2); s=solve(df); X=X+s*e2; A=[A X]; b=10*X(1,1)^2+106*X(2,1)^2+10*X(1,1)*X(2,1)+96*X(1,1)+100*X(2,1); a=[a b]; B=A(:,k+1)-A(:,k); while double(sqrt(B(1,1)^2+B(2,1)^2))>e syms t s C=X+t*e1; %沿e1方向搜索 x1=C(1,1); x2=C(2,1); df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2); t=solve(df); X=X+t*e1; C=X+s*e2; %沿e2方向搜索 x1=C(1,1); x2=C(2,1); df=diff(10*x1^2+106*x2^2+10*x1*x2+96*x1+100*x2); s=solve(df); X=X+s*e2; A=[A X]; b=10*X(1,1)^2+106*X(2,1)^2+10*X(1,1)*X(2,1)+96*X(1,1)+100*X(2,1); a=[a b];

相关主题
文本预览
相关文档 最新文档