matlab 欧拉方法和中点法问题

matlab 欧拉方法和中点法问题,第1张

欧拉法比较简单,但中点法相对麻烦,因其属于多步法,启动需要初始两个时刻的值,其中y1、z1可以用后退欧拉法来求。

我编写的代码如下:

% 用四阶龙格库塔方法求解,可以视为真值

dY = @(t,Y)[Y(2) ((1-Y(1)^2)*Y(2)-Y(1))]

[t,Y] = ode45(dY,[0 10],[1 1])

plot(t,Y(:,1))

hold all

% 欧拉法,步长0.25

h = 0.25

T = (0:h:10)'

y = T*0

z = y

y(1) = 1

z(1) = 1

for k = 2 : length(y)

    dz = (1-y(k-1)^2)*z(k-1)-y(k-1)

    dy = z(k-1)

    y(k) = y(k-1) + h * dy

    z(k) = z(k-1) + h * dz

end

Y1 = y

plot(T,Y1,'.-')

% 欧拉法,步长0.125

h = 0.125

T = (0:h:10)'

y = T*0

z = y

y(1) = 1

z(1) = 1

for k = 1 : length(y) - 1

    dz = (1-y(k)^2)*z(k)-y(k)

    dy = z(k)

    y(k+1) = y(k) + h * dy

    z(k+1) = z(k) + h * dz

end

Y2 = y

plot(T,Y2,'.-')

% 中点法,步长0.25

h = 0.25

T = (0:h:10)'

y = T*0

z = y

y(1) = 1

z(1) = 1

% 中点法属于多步法,启动需要初始两个时刻的值,其中y1、z1用后退欧拉法来求

[y1,z1] = solve('z1=z0+0.25*((1-y1^2)*z1-y1)','y1=y0+0.25*z1','y1','z1')

y0 = y(1) z0 = z(1)

% 方程存在多组解,需要找出实数解

y1 = subs(y1)

z1 = subs(z1)

inx = find(abs(imag(y1))<=eps)

y(2) = y1(inx)

z(2) = z1(inx)

for k = 2 : length(y)-1

    dz = (1-y(k)^2)*z(k)-y(k)

    dy = z(k)

    y(k+1) = y(k-1) + 2 * h * dy

    z(k+1) = z(k-1) + 2 * h * dz

end

Y3 = y

plot(T,Y3,'.-')

% 中点法,步长0.125

h = 0.125

T = (0:h:10)'

y = T*0

z = y

y(1) = 1

z(1) = 1

% 中点法属于多步法,启动需要初始两个时刻的值,其中y1、z1用后退欧拉法来求

[y1,z1] = solve('z1=z0+0.125*((1-y1^2)*z1-y1)','y1=y0+0.125*z1','y1','z1')

y0 = y(1) z0 = z(1)

% 方程存在多组解,需要找出实数解

y1 = subs(y1)

z1 = subs(z1)

inx = find(abs(imag(y1))<=eps)

y(2) = y1(inx)

z(2) = z1(inx)

for k = 2 : length(y)-1

    dz = (1-y(k)^2)*z(k)-y(k)

    dy = z(k)

    y(k+1) = y(k-1) + 2 * h * dy

    z(k+1) = z(k-1) + 2 * h * dz

end

Y4 = y

plot(T,Y4,'.-')

hold off

ylim([-1 1]*3)

legend('RK4','Euler''s method, h=0.25','Euler''s method, h=0.125', ...

    'Midpoint formula, h=0.25', 'Midpoint formula, h=0.125',2)

结果如图:

理论上说,中点法应该比欧拉法数值稳定性高,但从上面的程序看,中点法得到的结果却是发散的。我仔细查了好几遍程序,可能是因为已经形成思维定势的原因,没发现问题。请题主再自己检查一下看看。

至于说画导数dy/dt的轨迹,只是一个简单的保存数据并绘图的问题,请题主自行补上吧。

欧拉(Euler)齐次方程法又称欧拉反演方法,该方法是一种能自动估算场源位置的位场反演方法。它以欧拉齐次方程为基础,运用位场异常、其空间导数以及各种地质体具有的特定的“构造指数”来确定异常场源的位置。自20世纪80年代中后期以来,欧拉方法已得到了较为广泛的应用,尤其是适用于大面积重磁测量数据的解释。

图3-6-5 多个不同板宽、倾角、埋深及磁化率组合模型沃纳反褶积计算结果

(一)基本原理

已知一些特殊形状场源的位场为N阶齐次方程,N阶齐次方程也满足欧拉方程,欧拉方程的表达式为

地球物理勘探概论

式中:r为场源点到观测点的距离向量;T是位场异常;N是方程的阶数。该方程的一个解为

T=k/rN

在磁异常情况下,k为一常数,N可认为是异常幅值随距离增大的衰减率。针对任意起伏地形,将磁异常视为区域场与点源场之和,则具体的欧拉方程式(3-6-18)可表示为

地球物理勘探概论

式中:(l(1),l(2),l(3))为观测点的笛卡儿坐标系的三个正交坐标; 为场源中心点的坐标; 为磁异常及其在l(1)、l(2)、l(3)方向的梯度;N为构造指数;B为区域场或背景场。

当观测面水平时,或尽管观测面不水平,坐标系的两个坐标轴设置成水平并恒定不变;这样,l(1),l(2),l(3)通常表示成x,y,z,(3-6-19)式变成以下(3-6-20)式

地球物理勘探概论

方程式(3-6-20)还可写为

地球物理勘探概论

如果能测量或计算出磁异常及其梯度值,方程(3-6-19)只有五个未知数 、 、B和N(或x0,y0,z0,B和N)。一般而言,需要根据场源形状或有关异常性质的先验知识来选择构造指数N。这样,可以利用三个或更多相邻观测点的数据(组成一个观测移动数据窗口;对于剖面数据为若干数据点构成的数据段,对于平面网格化数据则通常为矩形数据窗口),通过解方程(3-6-21)组成的线性方程组便可计算出场源位置。在整个异常区将移动窗口从一处移到相邻的另一处,可以求得同一场源的多个解,这些解汇聚的位置可以被认为是场源中心点的位置。显然上述公式适用于起伏地形。

理论研究表明,对于一些形状规则的异常源,N为一恒定的正整数。例如,对于单磁极线源N=1;偶磁极线源N=2;偶极子源N=3。对于这些异常源,若能正确地选择N,则利用该方程能够准确地求出异常源的位置。若选择错误的N,将会导致解的发散。

从欧拉方程三维场源参数解的理论分析可知,移动窗口的大小、移动窗口所处位置以及构造指数N值选择的正确与否是影响场源参数数值解稳定性的三个主要因素。

(二)例子

图3-6-6是欧拉方程法确定磁源体位置与深度的程序对话框。输入磁异常观测值数据、水平与垂直导数并运行程序,程序自动计算得到的磁源体水平位置、垂直位置并作图。可以看到在水平位置为150m,垂直位置为10m处结果非常密集,人工选择一个合理的计算结果。该数据的理论模型为一个垂直薄板状体,水平位置与上顶埋深分别为150m与10m,可以看到程序计算结果与模型吻合很好。

华为欧拉系统(EulerOS),华为继鸿蒙 *** 作系统后,又推出了第二款自主研发的 *** 作系统欧拉(EulerOS),欧拉系统是一款基于Linux平台的一个原生态 *** 作系统工具,用户可以在这里进行更开阔的编程环境体验,帮助更多国内优秀程序开发师展示自我,共创一个出色的 *** 作系统环境。华为欧拉系统与鸿蒙系统将相互协作,生态共通。本次带来华为欧拉系统下载,PDF格式文档,帮您快速了解消化,想要尝鲜体验安装最新华为欧拉 *** 作系统的朋友们不要错过哦!

Space

华为欧拉系统(EulerOS)

华为欧拉系统介绍

OpenEuler 是一个开源、免费的 Linux 发行版平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,OpenEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。

欧拉的定位是瞄准国家数字基础设施的 *** 作系统和生态底座,承担着支撑构建领先、可靠、安全的数字基础的历史使命。

未来欧拉将定位为数字基础设施开源系统,覆盖全场景应用,支持服务器,云计算,边缘计算,嵌入式多样性设备。

OpenEuler与OpenHarmony将能力共享、生态互通。目前两个 *** 作系统的内核技术已经共享,未来还将在安全OS,编程语言,设备驱动框架,分布式软总线方面能力共享。

华为欧拉系统优势

1.全面支持鲲鹏处理器

EulerOS是目前支持TaiShan服务器最好的 *** 作系统之一,在性能、兼容性、功耗等方面具备较强的竞争力,持续推动鲲鹏处理器的生态构建。

- 提升多核并发能力,增强业务性能;L2 Cache共享技术,提升不同OSD进程间访问效率;首次在鲲鹏处理器架构内实现内核热补丁。

- 通过和Linaro及绿色产业联盟合作,联合构建绿色计算生态联盟,促进鲲鹏生态发展。

- 通过鲲鹏处理器的关键特性使能,实现了核心业务场景性能突破,并在Linux内核、虚拟化、GCC、OpenJDK及Docker等开源社区持续贡献,催熟产业生态。

2.高安全

EulerOS是目前最安全的 *** 作系统之一,能够提供各种安全技术以防止入侵,保障您的系统安全。

- 可配置加固策略。

- 内核级OS安全能力。

- 通过公安部信息安全技术 *** 作系统安全技术要求认证。

- 通过德国BSI PP标准的CC EAL4+认证。

- 通过美国NIAP PP标准的CC EAL2+认证。

- 通过美国NISTCAVP密码算法认证。

- 支持业界主流的安全漏扫工具。

3.高可靠、高可用、高保障

EulerOS在标准资质、RAS特性方面为客户业务系统提供了高可靠性和高稳定性技术保障,同时通过技术维护团队的7 * 24小时的服务保障体系,让客户没有后顾之忧。

- 故障管理(故障预测、分析、纠正、隔离)。

- 设备热插拔(支持设备动态调整、在线设备维护)。

- 软件故障修复(内核/用户态热补丁)。

- 7*24的服务保障体系(定制、调测、补丁升级、现场)。

- Unix03、LSB、IPv6 Ready、GB18030等行业标准认证体系。

4.高性能

EulerOS在编译系统、虚拟存储系统、CPU调度、IO驱动、网络和文件系统等方面进行改进与优化,使之成为一个高性能的 *** 作系统平台,满足客户业务系统的高负载需求。

相关新闻

9月25日,在华为全联接2021上,面向数字基础设施的开源 *** 作系统欧拉(OpenEuler)全新发布。欧拉 *** 作系统可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备,应用场景覆盖IT(Information Technology)、CT(Communication Technology)和OT(Operational Technology),实现统一 *** 作系统支持多设备,应用一次开发覆盖全场景。

欧拉全新发布

Space

华为欧拉系统(EulerOS)

华为计算产品线总裁邓泰华表示, *** 作系统“碎片化”现状,导致数字基础设施产生大量“软烟囱”,带来生态割裂、应用重复开发、协同繁琐的挑战,数字化新时代,呼唤新的统一 *** 作系统。

在ICT领域,华为提供服务器、存储、云服务、边缘计算、基站、路由器、工业控制等产品和解决方案,都需要搭载 *** 作系统,所以华为一直在构建能力,旨在通过统一的 *** 作系统架构来满足不同应用场景的需求。

本次欧拉全新升级,同时支持服务器、云计算、边缘计算、嵌入式等各种形态设备的需求。支持多样性计算,致力于提供安全、稳定、易用的 *** 作系统;并通过为应用提供确定性保障能力,支持OT领域应用及OT与ICT的融合。至此全新发布的欧拉 *** 作系统可覆盖从IT、CT到OT数字基础设施全场景。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8065959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存