微分方程求解。。

现在还能模拟登录微信公众平台吗?在线求解!
[问题点数:45分]
现在还能模拟登录微信公众平台吗?在线求解!
[问题点数:45分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。并行计算_百度百科
并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指,而空间上的并行则是指用多个并发的执行计算。
并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台的独立计算机构成的集群。通过并行计算集群完成数据的处理,再将处理的结果返回给用户。
并行计算可分为时间上的并行和空间上的并行。
时间上的并行:是指流水线技术,比如说工厂生产食品的时候步骤分为:
1. 清洗:将食品冲洗干净。
2. 消毒:将食品进行消毒处理。
3. 切割:将食品切成小块。
4. 包装:将食品装入包装袋。
如果不采用流水线,一个食品完成上述四个步骤后,下一个食品才进行处理,耗时且影响效率。但是采用流水线技术,就可以同时处理四个食品。这就是并行算法中的时间并行,在同一时间启动两个或两个以上的操作,大大提高计算性能。
l 空间上的并行:是指多个处理机并发的执行计算,即通过网络将两个以上的处理机连接起来,达到同时计算同一个任务的不同部分,或者单个处理机无法解决的大型问题。
比如小李准备在植树节种三棵树,如果小李1个人需要6个小时才能完成任务,植树节当天他叫来了好朋友小红、小王,三个人同时开始挖坑植树,2个小时后每个人都完成了一颗植树任务,这就是并行算法中的空间并行,将一个大任务分割成多个相同的子任务,来加快问题解决速度。
为利用并行计算,通常计算问题表现为以下特征:
(1)将工作分离成离散部分,有助于同时解决;
(2)随时并及时地执行多个程序指令;
(3)多计算资源下解决问题的耗时要少于单个计算资源下的耗时。
基本体系结构
并行计算科学中主要研究的是空间上的并行问题。从程序和算法设计人员的角度来看,并行计算又可分为数据并行和。一般来说,因为数据并行主要是将一个大任务化解成相同的各个子任务,比要容易处理。
空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:(SIMD)和多多数据流(MIMD)。我们常用的串行机也叫做单指令流单(SISD)。MIMD类的机器又可分为以下常见的五类:并行向量(PVP)、(SMP)、大规模并行处理机(MPP)、工作站(COW)、分布式共享存储处理机(DSM)。
并行有以下五种访存模型:
均匀访存模型(UMA)
全高速缓存访存模型(COMA)
一致性高速缓存非均匀存储访问模型(CC-NUMA)
(NORMA)。
并行求解过程示意图
不像串行那样,全世界基本上都在使用冯·诺伊曼的计算模型;并行计算机没有一个统一的计算模型。不过,人们已经提出了几种有价值的参考模型:,,模型,C^3模型等。
并行计算机是靠网络将各个处理机或处理器连接起来的,一般来说有以下几种方式:处理单元间有着固定连接的一类网络,在程序执行期间,这种点到点的链接保持不变;典型的静态网络有一维线性阵列、二维网孔、树连接、超立方网络、立方环、洗牌交换网、蝶形网络等。静态连接
用交换开关构成的,可按的要求动态地改变连接;典型的包括总线、和多级等。
度:射入或射出一个节点的边数。在单向网络中,入射和出射边之和称为节点度。
:网络中任何两个之间的最长距离,即最大路径数。
对剖宽度:对分网络各半所必须移去的最少边数。
对剖带宽:每秒钟内,在最小的对剖平面上通过所有连线的最大信息位(或字节)。
加速比评测
Amdahl定理
Gastofson定理
Sun-Ni定理
可扩放性标准
等效率标准
等速度标准
并行计算与云计算
是在并行计算之后产生的概念,是由并行计算发展而来, 两者在很多方面有着共性。学习并行计算对于理解有很大的帮助。并行计算是学习必须要学习的基础课程。
但并行计算不等于云计算,也不等同并行计算。两者区别如下。
(1)萌芽于并行计算
的萌芽应该从的并行化开始,并行机的出现是人们不满足于CPU摩尔定率的增长速度,希望把多个计算机并联起来,从而获得更快的计算速度。这是一种很简单也很朴素的实现高速计算的方法,这种方法后来被证明是相当成功的。
(2)并行计算、只用于特定的科学领域,专业的用户
并行计算、的提出主要是为了满足科学和技术领域的专业需要,其应用领域也基本限于科学领域。传统并行的使用是一个相当专业的工作,需要使用者有较高的专业素质,多数是命令行的操作,这是很多专业人士的噩梦,更不用说普通的业余级用户了。
(3)并行计算追求的高性能
在并行计算的时代,人们极力追求的是高速的计算、采用昂贵的服务器,各国不惜代价在计算速度上超越他国,因此,并行计算时代的高性能是一个“快速消费品”,世界TOP500高性能地排名不断地在刷新,一台大型机群如果在3年左右不能得到有效的利用就远远的落后了,巨额投资无法收回。
(4)对于单节点的计算能力要求低
而时代我们并不去追求使用昂贵的服务器,我们也不用去考虑TOP500的排名,云中心的计算力和存储力可随着需要逐步增加,云计算的基础架构支持这一动态增加的方式,高性能计算将在云计算时代成为“耐用消费品”。
本词条内容贡献者为
副理事长兼秘书长
中国通信学会
中国通信学会
原武汉邮电科学研究院
中国联通网络技术研究院
工业和信息化部电信研究院互联网中心
副院长兼总工程师
中国移动设计院
首席架构师业务总工程师
中兴通讯股份有限公司
百度公司发展研究中心
中国通信学会科普中国百科科学词条评审专家委员会
中国通信学会是全国通信...
提供资源类型:内容& & & & & & & &本博客所有文章分类的总目录:&
开源Math.NET基础数学类库使用总目录:
  在前几篇关于Math.NET的博客中(见上面链接),主要是介绍了Math.NET中主要的数值功能,并进行了简单的矩阵向量计算例子,接着使用Math.NET的矩阵等对象,对3种常用的矩阵数据交换格式的读写。一方面可以了解Math.NET的使用,另一方面以后也可以直接读取和保存数据为这两种格式,给大家的科研或者工作带来便利。接下来的文章将继续对Math.NET的功能进行讲解和演示,并附带一些数学方面的基础知识。毕竟很多人没有精力去研究Math.NET,那我就把我的研究心得一一写出来,方便后来人。
1.数值分析与线性方程
  数值分析的基本含义与特点:
  数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。为计算数学的主体部分。数值分析有如下特点:1&面向计算机2&有可靠的理论分析3&要有好的计算复杂性4&要有数值实验5.要对算法进行误差分析  
  数值分析的主要内容:插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。
  所以我们今天要解决的就是数值分析的一个很小但又最常接触到的部分,方程(组)的求解。方程(组)的求解有2种方法,一种是直接求解,一种是迭代求解。直接方法比较好理解,相当与使用公式进行直接计算,结果也比较精确。而另外一种是迭代方法。从最初的猜测,迭代方法逐次近似形式收敛只在极限的精确解。
  正如上面所说,方程(组)的形式很多,不同的形式以及实际要求的精度都可以使用不同的方法,而本文主要介绍最简单,也是最常见的线性方程的直接求解方法。
2.Math.NET解线性方程源码分析
  本文首先对Math.NET中求解线性方程的相关源码进行分析,这样大家碰到了问题,也可以更好的查找源码解决,或者进行扩展,实现自己的一些特殊需求。Math.NET中MathNet.Numerics.LinearAlgebra.Factorization命名空间下有一个泛型接口:ISolver&T&,就是解AX = B类型的线性方程的接口类型。该接口功能很多,看看下面的接口源代码和注释(本人进行了简单的翻译),就很清楚了。
3 namespace MathNet.Numerics.LinearAlgebra.Factorization
/// &summary&形如AX = B的线性方程组求解的接口类型&/summary&
/// &typeparam name="T"&泛型参数,支持类型有:double, single, &see cref="Complex"/&,
/// 以及 &see cref="Complex32"/&.&/typeparam&
public interface ISolver&T& where T : struct, IEquatable&T&, IFormattable
/// &summary&求解AX=B的线性方程组&/summary&
/// &param name="input"&右矩阵&c&B&/c&.&/param&
/// &returns&返回求解结果矩阵 &c&X&/c&.&/returns&
Matrix&T& Solve(Matrix&T& input);
/// &summary&求解AX=B的线性方程组&/summary&
/// &param name="input"&右矩阵 &c&B&/c&.&/param&
/// &param name="result"&求解结果矩阵, &c&X&/c&.&/param&
void Solve(Matrix&T& input, Matrix&T& result);
/// &summary&求解AX=b的线性方程组&/summary&
/// &param name="input"&等式的右边向量 &c&b&/c&.&/param&
/// &returns&返回求解结果的左边向量 , &c&x&/c&.&/returns&
Vector&T& Solve(Vector&T& input);
/// &summary&求解AX=b的线性方程组&/summary&
/// &param name="input"&等式的右边向量 &c&b&/c&.&/param&
/// &param name="result"&求解结果矩阵, &c&x&/c&.&/param&
void Solve(Vector&T& input, Vector&T& result);
&由于求解线性方程组主要用到了矩阵的分解,Math.NET实现了5种矩阵分解的算法:LU,QR,Svd,Evd,Cholesky。而GramSchmidt是继承QR的,每一个都是实现了ISolver&T&接口,因此就可以直接使用矩阵的分解功能,直接进行线性方程组的求解。为了方便,我们举一个LU的源码例子,简单的看看源码的基本情况:
1 public abstract class LU&T& : ISolver&T& where T : struct, IEquatable&T&, IFormattable
static readonly T One = BuilderInstance&T&.Matrix.O
readonly Lazy&Matrix&T&& _lazyL;
readonly Lazy&Matrix&T&& _lazyU;
readonly Lazy&Permutation& _lazyP;
protected readonly Matrix&T& F
protected readonly int[] P
protected LU(Matrix&T& factors, int[] pivots)
_lazyL = new Lazy&Matrix&T&&(ComputeL);
_lazyU = new Lazy&Matrix&T&&(Factors.UpperTriangle);
_lazyP = new Lazy&Permutation&(() =& Permutation.FromInversions(Pivots));
Matrix&T& ComputeL()
var result = Factors.LowerTriangle();
for (var i = 0; i & result.RowC i++)
result.At(i, i, One);
/// &summary&Gets the lower triangular factor.&/summary&
public Matrix&T& L
get { return _lazyL.V }
/// &summary&Gets the upper triangular factor.&/summary&
public Matrix&T& U
get { return _lazyU.V }
/// &summary&Gets the permutation applied to LU factorization.&/summary&
public Permutation P
get { return _lazyP.V }
/// &summary&Gets the determinant of the matrix for which the LU factorization was computed.&/summary&
public abstract T Determinant { get; }
public virtual Matrix&T& Solve(Matrix&T& input)
var x = Matrix&T&.Build.SameAs(input, input.RowCount, input.ColumnCount);
Solve(input, x);
public abstract void Solve(Matrix&T& input, Matrix&T& result);
public virtual Vector&T& Solve(Vector&T& input)
var x = Vector&T&.Build.SameAs(input, input.Count);
Solve(input, x);
public abstract void Solve(Vector&T& input, Vector&T& result);
public abstract Matrix&T& Inverse();
  大家可能会注意到,上面是抽象类,这和Math.NET的实现是有关的。最终都是实现相应版本的Matrix矩阵,然后实现对应版本的类型的分解方法。下面例子会介绍具体使用,大家有疑问,可以拿着源码和例子,调试一番,知道上面的2个实现过程,就比较简单了
3.Math.NET求解线性方程的实例
&  假设下面是要求解的线性方程组(Ax=b):
5*x + 2*y &- 4*z = -73*x - &7*y + 6*z = 384*x + 1*y + 5*z = 43
&测试代码,由于求解的方法很多,只列举了几种,其他的以此类推:
1 var formatProvider = (CultureInfo) CultureInfo.InvariantCulture.Clone();
2 formatProvider.TextInfo.ListSeparator = " ";
4 //先创建系数矩阵A
5 var matrixA = DenseMatrix.OfArray(new[,] {{5.00, 2.00, -4.00}, {3.00, -7.00, 6.00}, {4.00, 1.00, 5.00}});
7 //创建向量b
8 var vectorB = new DenseVector(new[] {-7.0, 38.0, 43.0});
10 // 1.使用LU分解方法求解
11 var resultX = matrixA.LU().Solve(vectorB);
12 Console.WriteLine(@"1. Solution using LU decomposition");
13 Console.WriteLine(resultX.ToString("#0.00\t", formatProvider));
15 // 2.使用QR分解方法求解
16 resultX = matrixA.QR().Solve(vectorB);
17 Console.WriteLine(@"2. Solution using QR decomposition");
18 Console.WriteLine(resultX.ToString("#0.00\t", formatProvider));
20 // 3. 使用SVD分解方法求解
21 matrixA.Svd().Solve(vectorB, resultX);
22 Console.WriteLine(@"3. Solution using SVD decomposition");
23 Console.WriteLine(resultX.ToString("#0.00\t", formatProvider));
25 // 4.使用Gram-Shmidt分解方法求解
26 matrixA.GramSchmidt().Solve(vectorB, resultX);
27 Console.WriteLine(@"4. Solution using Gram-Shmidt decomposition");
28 Console.WriteLine(resultX.ToString("#0.00\t", formatProvider));
30 // 5.验证结果,就是把结果和A相乘,看看和b是否相等
31 var reconstructVecorB = matrixA*resultX;
32 Console.WriteLine(@"5. Multiply coefficient matrix 'A' by result vector 'x'");
33 Console.WriteLine(reconstructVecorB.ToString("#0.00\t", formatProvider));
结果如下:&
1. Solution using LU decomposition
DenseVector 3-Double
2. Solution using QR decomposition
DenseVector 3-Double
3. Solution using SVD decomposition
DenseVector 3-Double
4. Solution using Gram-Shmidt decomposition
DenseVector 3-Double
5. Multiply coefficient matrix 'A' by result vector 'x'
DenseVector 3-Double
  今天的用法就到此为止,请关注博客,后续还有更多的分析和使用文章。
  如果本文资源或者显示有问题,请参考&:
阅读(...) 评论()【求解】(因不想变成像绿箭侠、巴特·艾伦一样成为黑灯军团..._闪电侠吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:113,203贴子:
【求解】(因不想变成像绿箭侠、巴特·艾伦一样成为黑灯军团...
楼主想问什么?
注明:文中所说的巴特是四代闪电侠,少年泰坦成员,二代闪电巴里艾伦的孙子,曾经死亡过,故而在至黑之夜被黑灯追逐;二代闪电巴里艾伦在无限地球危机之后陷入神速力,并最终消失,被视为死亡。被黑灯灯戒追逐的超级小子、巴特和绿箭 带上黑灯戒的绿箭 二代闪电巴里(红)和四代闪电巴特艾伦(黑) 巴里带着哈二通过穿越来到未来两秒打断了黑灯戒指的追逐
阻止黑灯的方法,最常用的就是冻上 该死的冷冻队长,偏在我快复仇成功的时候扔急冻手雷……
内&&容:使用签名档&&
保存至快速回贴求解_郑州电力职业技术学院吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:16,228贴子:
这是真是假,求学姐学长解答呀!
昨天摇到一妹子,不说多...
有男吧友爆照,我进去一...
关机重启还是透视玩了下...
可以趣分期
真的,我们寝室有个哥们就搞了
上面电话多少?
我的手机都是这样买的
认真你就输了
分期,首付两千多
贪小便宜吃大亏!
要分期来趣分期
坑爹的东西   --你好,我叫麦大麦
这东西如果你信了,那么以后可有你受骗的
吧,比较靠谱
真的,又没首付没利息,我两三个朋友都弄了,
内&&容:使用签名档&&
保存至快速回贴

我要回帖

更多关于 matlab求解方程 的文章

 

随机推荐