收藏 分销(赏)

数学建模-蛋白质分子量分解问题的探究.doc

上传人:仙人****88 文档编号:9314449 上传时间:2025-03-21 格式:DOC 页数:21 大小:354.48KB 下载积分:10 金币
下载 相关 举报
数学建模-蛋白质分子量分解问题的探究.doc_第1页
第1页 / 共21页
数学建模-蛋白质分子量分解问题的探究.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
分子量分解问题的研究 摘 要 生命蛋白质在形成过程中由若干种氨基酸经不同的方式组合而成,针对拥有一定分子量的蛋白质分子在形成过程中所存在的若干的不同的组合方式问题 ,在给定的蛋白质分子量x条件下,我们分不拥有计算机和拥有计算机两种情况考虑:一、在没有计算机的情况下,我们通过题中条件建立多元一次方程组,建立了一般数学模型,利用矩阵法得出不附加任何约束条件下的最为一般的数学模型,求解满足已知条件的解,得到不同x条件下方程通解的表达式;二、在拥有计算机的情况下,共建立三个数学模型:分别为:1、不考虑任何其他约束条件下的蛋白质分解,我们用Fortran编程穷举满足方程的所有解,但是我们发现直接编程通过18次循环来求解十八元一次方程工作量较大,因此在模型一中我们将程序循环的上限合理地改为了,从而减少程序运行次数。当X取1000的时候,运行的次数已经减少到28268次,提高了程序运行的效率,运行时间减少到0.187秒。提高了程序运行的效率,缩短了运行时间。2、在模型二中通过考虑确定C、H、O、N各元素的相对分子含量,在原有的FORTRAN程序中增加了4个约束条件,建立延伸拓展模型,得出合理的有可能在生活中存在的氨基酸的组合数。减少了无用解的数目,缩短了程序运行时间。以分子式为的蛋白质为例。其相对分子质量为936,分解成氨基酸的组合形式有256种,所用时间<2s,组成形式只有原来的1/100,时间缩减为原来的1/5。3、模型三通过生物化学手段确定蛋白质中所含氨基酸的种类M,从而减少方程中未知量的个数,将18元整数一次方程简化为M(M<=18)元一次方程,从而大大减少了运算量,节省了时间。 最后我们对模型进行了分析,并得到模型的整体评价和推广前景。 关键词 n元一次不定方程,矩阵法,氨基酸、各元素含量 一、 问题重述 生命蛋白质是由若干种氨基酸经不同的方式组合而成。在实验中,为了分析某个生命蛋白质的分子组成,通常用质谱实验测定其分子量x (正整数),然后将分子量x分解为n个已知分子量a[i](i=1,.......,n)氨基酸的和的形式。某实验室所研究的问题中: n=18, x1000 a[i](i=1,.......,18)分别为57, 71, 87, 97, 99, 101, 103, 113, 114, 115, 128, 129, 131, 137, 147, 156, 163, 186 要求针对该实验室拥有或不拥有计算机的情况作出解答。 二、 问题分析 蛋白质是以氨基酸为基本单位构成的生物高分子。由生物常识可知,组成蛋白质的氨基酸总共有20种,由于亮氨酸和异亮氨酸、谷酰胺和赖氨酸相对分子质量相同,所以题目中给出的氨基酸分子质量有18种。分析某个生命蛋白质的分子组成,即通过N元一次方程求出组成蛋白质的氨基酸的种类和数目。在没有计算机的情况下,常采用辗转相除法解N元一次方程,但由于过程繁琐,计算量大,我们尝试改用矩阵法。在有计算机的情况下,我们可以利用蛋白质本身的特性,补充约束条件,结合FORTRAN语句编程,可以有效减少运算结果和运算时间。 三、 模型假设 1、 忽略各个氨基酸分子结合失去一分子水的影响,给定的蛋白质分子量X单纯只是几个已知的氨基酸分子量之和而不考虑其他影响因素; 2、 假设所有被测定的蛋白质均由给定分子量的20种氨基酸组成,不含有其他组成成分。因为组成蛋白质的20种主要氨基酸中有两对分子量相等,故为18种相对分子质量; 3、 假设氨基酸分子结合过程中是任意排列组合的,不存在互斥或互补现象,即任何两种氨基酸都可以同时存在于同一个蛋白质中,没有任何一种氨基酸的存在是以其他氨基酸的存在为前提的。实际中这一假设是成立的; 4、 假设给定的蛋白质分子量X和氨基酸已知分子量数据准确,无测量误差; 5、 假设实验测定中蛋白质是水解完全的; 6、 假设实验室拥有测定物质化学性质的仪器 四、 符号系统 :第i种氨基酸的实际分子质量 :蛋白质分子中各组成氨基酸的数目 :蛋白质分子的实际分子质量 :第i种氨基酸C,H,O,N原子的个数 %、%、%、%:该蛋白质中相应元素的质量分数 :该蛋白质含有的氨基酸种类数目 五、 模型建立 5.1在没有计算机的情况下 由题目可知,本题是一个典型的多元一次不定方程的求解问题。所谓多元一次不定方程,就是可以写成下列形式的方程:,它是指未知数的个数多余方程个数的方程,这类方程可能有无穷多解。传统方法中常用的方法为辗转相除法,但是当n较大的时候计算起来比较繁琐,因此,我们利用矩阵的初等变换求不定方程的通解。 是18个整数,经过一系列初等整消法变换,矩阵 (1) 可化为整数矩阵 (2) 其中,是的最大公因数,并且 定理1 设()=1,为不定方程的一组特解 为任意整数,那么它的通解为: 证明 由及,得 故 , 显然上式有n-1个自由未知量,不难求得它的n-1个解为: 因为行列式 所以D的n个列线性无关,从而它的前n-1个列线性无关,即线性无关,故方程 的任意解是的线性组合。所以, = 即 其中为任意整数。证毕。 定理2 设则不定方程有解;任取个整数及n个数做矩阵: 使,并作伴随矩阵: 其中为的代数余子式;设为方程的任一组特解,那么方程的通解为: 其中为任意整数。 证明 由及,得 由行列式性质得所以的前n-1列是方程(3)的解。又 =,所以的n个列线性无关,从而它的前n-1列线性无关,故(3)的任意解是 的前n-1列的线性组合。从而有任意整数,使得 证毕 5.2在有计算机的情况下 模型一:不考虑任何其他约束条件下的蛋白质分解 在不考虑任何其他约束条件时,我们想到用穷举法法解决此问题,根据方程式,利用循环结构,对18种氨基酸可能的组合进行罗列。显然这种穷举法的计算量过大,程序运行时间长,产生的无用结果多。于是我们将穷举法加以改进。因为,限制了的取值范围为,即: 然后,结合FORTRAN语言以循环嵌套为主体编写程序(见附录)。通过程序运算,我们得到了下表中分子量、氨基酸组合方式、程序运行时间的数据: 分子量 解的个数 运行时间 100 0 0.000 200 4 0.000 300 14 0.000 400 45 0.000 500 158 0.000 600 522 0.000 700 1508 0.000 800 4291 0.003 900 11249 0.006 1000 28268 0.187 1100 67339 0.452 1200 154143 0.733 1300 338158 1.607 1400 716481 3.011 1500 1467221 5.320 1600 2915738 13.135 1700 5633990 23.899 1800 10611492 39.297 1900 19517035 75.161 2000 35119056 137.640 接着,我们用MATLAB绘制了“N -X拟合曲线图”和“t -X拟合曲线图”。 从曲线图中可以看出,氨基酸的组合个数与蛋白质分子量呈指数关系,程序运行时间与蛋白质分子量也呈指数关系。由于生物蛋白质的平均分子量一般都达到5000甚至更高,通过改进穷举法得到的结果将会非常之多,程序运行时间也会特别长,不利于实验室研究求得结果,我们应该从蛋白质本身的生物特性出发,增加约束条件,减少无用解的数量,缩短运算时间。 模型二:已知各元素含量条件下的蛋白质分解 通过查阅生物知识,我们知道蛋白质主要由C、H、O、N四种元素组成。 氨基酸分子量、分子式的基本情况表 分子量 氨基酸 分子式 57 甘氨酸 71 丙氨酸 87 丝氨酸 97 脯氨酸 99 缬氨酸 101 苏氨酸 103 半胱氨酸 113 亮氨酸、异亮氨酸 114 天冬酰胺 115 天冬氨酸 128 谷酰胺 128 赖氨酸 129 谷氨酸 131 蛋氨酸 137 组氨酸 147 苯丙氨酸 156 精氨酸 163 络氨酸 186 色氨酸 假设实验室中的元素分析仪可以测量出该蛋白质中C、H、O、N四种元素的含量,我们得到的模型公式是: 在原有的FORTRAN程序中增加了4个约束条件,减少了无用解的数目,缩短了程序运行时间。以分子式为的蛋白质为例。其相对分子质量为936,分解成氨基酸的组合形式有256种,所用时间<2s,组成形式只有原来的1/100,时间缩减为原来的1/5。于是可以得出结论,这样的限定条件可以大大降低运行的时间,也可以减少了氨基酸组合的情况,可以较好的起到优化作用。 模型三:已知蛋白质只由某几种特定氨基酸组成 实验室中的氨基酸分析仪可以测定蛋白质的氨基酸组成。假设测出的氨基酸种类为m,显然,模型公式为: 假设m值为5,即组成蛋白质的氨基酸种类有5种,分别为:甘氨酸(57),丙氨酸(71),缬氨酸(99),苏氨酸(101),天冬氨酸(115),代入模型公式得到五元一次方程: 由FORTRAN编程得到了不同分子量情况下的氨基酸种类及运行时间,见下表: 分子量 解的个数 运行时间 100 0 0.00020971 125 0 0.00042919 150 0 0.00060468 175 0 0.00074937 200 3 0.0011 225 1 0.0018 250 3 0.0033 275 2 0.0043 300 3 0.0059 325 6 0.0087 350 2 0.0139 375 10 0.02 400 16 0.0273 425 13 0.0365 450 24 0.0546 475 33 0.0737 500 38 0.0981 550 52 0.1747 600 134 0.3088 650 228 0.4535 700 362 0.9227 750 525 1.3958 800 926 2.0432 850 1499 4.0049 900 2311 4.399 950 3376 9.0565 1000 5179 12.6671 1025 6320 14.481 1050 7847 17.0473 1075 9476 25.3946 1100 11619 28.8187 1200 24245 66.6803 1250 34921 90.4137 1500 186431 431.1675 由以上图表可以看出,在已知氨基酸种类个数的情况下,可以明显减少解的个数,去掉很多无意义解,进而会更加有效的获得实验数据,帮助实验员的下一步研究进展。 六、 模型分析 本文分不拥有计算机和拥有计算机两种情况: 在不拥有计算机的情况下,我们提供了一种手工算法。这也是一种对于解多元整数不定方程常用的方法---矩阵法。经过简单的矩阵变换,得到通解的形式,这样可以解决一些蛋白质分子质量比较小的问题。但是如果X取值比较大的话,由于解的个数成指数增长,会造成计算量剧增,手工计算会很困难,实用性受到一定限制,仍需要改进。但是这也是在没有计算机的情况下,不得已的一种简单有效的算法。 在拥有计算机的情况下,我们建立了三种模型。模型一:不考虑任何其他约束条件下的蛋白质分解。我们由题目可以建立一个多元整数不定方程,利用Fortran编程历遍算法,求出方程的解。但是由于未知量较多,X的值在较小的时候,方程解的个数少,所用时间也很少,方便快捷,而且准确全面。但是当X的值到达一定限度后,只要稍有增加,解的个数和计算量就会成指数方式急剧增长,运算时间骤增,甚至达到不可行的程度。因此我们在此基础上对该模型进行了优化,采用增加限制条件,对解进行筛选。模型二:已知各元素含量条件下的蛋白质分解。我们联系生物技术方面的知识,知道可以通过凯式定氮法,元素分析仪等手段先确定蛋白质中碳氢氧氮元素的含量。增加四个约束条件,使我们要求的解的数量大幅度减少,有利于实际生活中的应用。然而,仅从各元素含量的约束仍然是不够的,在现代实验室强大的科学技术条件下,我们还可以通过各种仪器进一步测得蛋白质中所含氨基酸的种类,针对这些情况,于是我们又建立了模型三:测定蛋白质中氨基酸的种类。当我们知道一种蛋白质是由哪些特定氨基酸构成的时候,就明确了未知变量具体的个数,而不用从18种氨基酸中挑选。这样就将未知变量从18个减少到了特定的几个,大大减少了运算量,节省了运算时间,增加了该模型的可行性。在现代实验室强大的科学技术条件下,我们还可以通过其他方法进一步测得蛋白质相关的各种属性,比如说带电量等,针对这些情况,我们还可以建立许多更有实际应用价值的模型。 七、 模型推广 本文主要采用N元一次线性方程,结合生物化学知识补充约束条件建立模型,适用范围广,最具有一般性。无论蛋白质分子量X和氨基酸分子量取值如何,模型总是有效的。同时,模型结果不仅能够给出组成蛋白质的各种氨基酸总数,也能罗列出各种氨基酸的个数,对于生物实验具有实际意义。此外,我们建立这些模型的方法和思想对其他类似问题也很适用,像多糖等类似高分子化合物的组成分析,我们只需改变模型中的某些参数就可以进行类似分析。 八、 结 论 本文针对在实验室没有计算机的情况下,采用矩阵法导出了N元一次线性方程整数解的一般通式,只需给定参数便可求出一组解。但是由于矩阵的推导过程繁琐,解的个数太多,在具体情况下很难操作求解。在实验室拥有计算机的情况下,我们建立了三个模型。模型一是在没有任何约束条件下,采用改进的穷举法,用FROTRAN变成求解。发现氨基酸解的个数与蛋白质分子量呈指数关系,程序运算时间与蛋白质分子量呈指数关系。当X取值1000时,有解28268个。考虑到28268个解当中有许多不符合生物常识存在,我们结合生物化学知识分别建立了已知各元素含量条件下的蛋白质分解的模型二和已知蛋白质只由某几种特定氨基酸组成的模型三,将模型一进行优化,合理地将结果控制到了186431。当然,仅有以上两点约束仍是不够的,通过一些生物科学技术,我们理论上可以找到更加优越的控制模型。 九、 模型评价 在没有计算机的情况下,我们通过矩阵法求解N元一次线性方程。经过简单的矩阵变换,得到通解的形式,但是此种方法只适用于X取值较小的情况下。当X取值较大时,运算及其繁琐,耗费时间长,很难求出全部结果。不建议使用手工算法求解该问题。在有计算机的情况下,我们将模型与生物化学知识相结合,补充约束条件,分别得到了模型二、模型三两个模型。这两个模型都排出了不符合实际情况的解,在一定程度上提高了运算速率。并且此类建模的思想和方法具有一般性,可以适用于其他相似问题的求解。 十、 参考文献 [1].孙浩,史团委,柏建韦,刘扬,倪克闯.蛋白质分子量分解问题数学模型及求解[J] 中国论文在线. [2].程龙,张云军,赵蕊.蛋白质氨基酸的组合问题 [3].赵静,但琦.数学建模与数学实验[M],北京:高等教育出版社,2008 [4].王巧,相琪,尹菲.N元一次不定方程的矩阵解法 [5].马瑞民,衣治安.FORTRAN程序设计.哈尔滨工程大学出版社 十一、 .附 录 模型一:不加任何约束条件的FORTRAN源代码 program fzl implicit none integer,dimension(1:20)::s real,dimension(1:20)::t integer::x,i,n,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 real::timestart,timeend !open(1,file='(zuhe.out)') open(2,file='(time_n.out)') !print*,'本程序为x依次取值100,200...,1000时所求得的解得个数及所需时间' n=0;i=1 do x=100,2000,100 !分别计算x=100,200...1000的运算时间及解的个数 call cpu_time(timestart) do x1=0,x/186 !以1为步长,及时更新最大值减少运算量 do x2=0,(x-186*x1)/163 do x3=0,(x-186*x1-163*x2)/156 do x4=0,(x-186*x1-163*x2-156*x3)/147 do x5=0,(x-186*x1-163*x2-156*x3-147*x4)/137 do x6=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5)/131 do x7=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6)/129 do x8=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7)/128 do x9=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8)/115 do x10=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9)/114 do x11=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10)/113 do x12=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11)/103 do x13=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12)/101 do x14=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13)/99 do x15=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14)/97 do x16=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15)/87 do x17=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16)/71 do x18=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16-71*x17)/57 if (abs(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16-71*x17-57*x18)<0.01) then !write(1,*)x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 !write(1,*) !write(*,*)x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 !write(*,*) n=n+1 endif enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo call cpu_time(timeend) t(i)=timeend-timestart s(i)=n i=i+1 n=0 enddo write(2,*)s write(2,*) write(2,*)t print*,'解的个数分别为',s print*,'所耗时间分别为:',t end 模型二:已知各元素含量条件下的FORTRAN源代码 program fzl implicit none integer,dimension(1:20)::s real,dimension(1:20)::t integer::x,i,n,p,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 real::timestart,timeend,c,h,o,d,pc,ph,po,pn open(2,file='(time_n2.out)') !print*,'本程序为x依次取值100,200...,1000时所求得的解得个数及所需时间' print*,'请分别输入C H O N的含量,用小数表示' read*,c,h,o,d n=0;i=1 do x=100,2000,100 !分别计算x=100,200...1000的运算时间及解的个数 call cpu_time(timestart) do x1=0,x/186 !以1为步长,及时更新最大值减少运算量 do x2=0,(x-186*x1)/163 do x3=0,(x-186*x1-163*x2)/156 do x4=0,(x-186*x1-163*x2-156*x3)/147 do x5=0,(x-186*x1-163*x2-156*x3-147*x4)/137 do x6=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5)/131 do x7=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6)/129 do x8=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7)/128 do x9=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8)/115 do x10=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9)/114 do x11=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10)/113 do x12=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11)/103 do x13=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12)/101 do x14=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13)/99 do x15=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14)/97 do x16=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15)/87 do x17=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16)/71 do x18=0,(x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16-71*x17)/57 p=x-186*x1-163*x2-156*x3-147*x4-137*x5-131*x6-129*x7-128*x8-115*x9-114*x10-113*x11-103*x12-101*x13-99*x14-97*x15-87*x16-71*x17-57*x18 pc=0.42*x18*57+0.51*x17*71+0.41*x16*87+x15*0.62*97+x14*0.61*99+x13*0.48*101+x12*0.35*103+x11*0.64*113+x10*0.42*114+x9*0.42*115+x8*0.56*128+x7*0.47*129+x6*0.46*131+x5*0.53*137+x4*0.40*147+x3*0.44*157+x2*0.66*163+x1*0.71*186 !分别各氨基酸的C H O N含量之和等于蛋白质的C H O N含量 ph=0.05*x18*57+0.07*x17*71+x16*0.06*87+x15*0.08*97+x14*0.09*99+x13*0.06*101+x12*0.05*103+x11*0.10*113+x10*0.05*114+x9*0.04*115+x8*0.09*128+x7*0.05*129+x6*0.07*131+x5*0.05*137+x4*0.09*147+x3*0.08*157+x2*0.06*163+x1*0.05*186 po=0.28*x18*57+x17*0.22*71+x16*0.37*87+x15*0.16*97+x14*0.16*99+x13*0.32*101+x12*0.16*103+x11*0.14*113+x10*0.28*114+x9*0.42*115+x8*0.13*128+x7*0.37*129+x6*0.12*131+x5*0.12*137+x4*0.32*147+x3*0.30*157+x2*0.20*163+x1*0.09*186 pn=x18*0.25*57+x17*0.20*71+x16*0.16*87+x15*0.14*97+x14*0.14*99+x13*0.14*101+x12*0.14*103+x11*0.12*113+x10*0.25*114+x9*0.12*115+x8*0.22*128+x7*0.11*129+x6*0.11*131+x5*0.30*137+x4*0.19*147+x3*0.18*157+x2*0.08*163+x1*0.15*186 if (abs(p)<1e-6.and.abs(pc-c*x)<1e-6.and.abs(ph-h*x)<1e-6.and.abs(po-o*x)<1e-6.and.abs(pn-d*x)<1e-6) then !write(1,*)x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 !write(1,*) !write(*,*)x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 !write(*,*) n=n+1 endif enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo enddo call cpu_time(timeend) print*,i t(i)=timeend-timestart s(i)=n i=i+1 n=0 enddo write(2,*)s write(2,*) write(2,*)t print*,'解的个数分别为',s print*,'所耗时间分别为:',t end 模型三:已知蛋白质只由某几种特定氨基酸组成条件下的FORTRAN源代码 program fzl4 implicit none integer,dimension(1:30)::s real,dimension(1:30)::t integer::x,i,n,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18 real::timestart,timeend open(2,file='(time_n4.out)') !print*,'本程序为x依次取值100,200...,2000时所求得的解得个数及所需时间' n=0;i=1 do x=100,3000,100 !分别计算x=100,200...2000的运算时间及解的个数 call cpu_time(timestart) do x9=0,x/115 do x13=0,(x-115*x9)/101 do x14=0,(x-115*x9-101*x13)/99 do x17=0,(x-115*x9-101*x13-99*x14)/71 do x18=0,(x-115*x9-101*x13-99*x14-71*x17)/57 if (abs(x-115*x9-101*x13-99*x14-71*x17-57*x18)<0.01) then n=n+1 endif enddo enddo enddo enddo enddo call cpu_time(timeend) t(i)=timeend-timestart s(i)=n i=i+1 n=0 enddo write(2,*)s write(2,*) write(2,*)t print*,'解的个数分别为',s print*,'所耗时间分别为:',t end
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服