永发信息网

谁可以帮忙用fortran语言编写一个程序?是求n元一次方程组的解!或者是求100!的精确解!谢谢

答案:1  悬赏:20  手机版
解决时间 2021-07-25 15:14
谁可以帮忙用fortran语言编写一个程序?是求n元一次方程组的解!或者是求100!的精确解!谢谢
最佳答案

求n元一次方程组的解现在已经有很好用的链接库可以用了,很多fortran编译器厂商现在都提供了IMSL(数学与统计链接库),IMSL是一套在数值方法上经常用到的商业链接库,visual fortran 专业版的编译器就内置IMSL。下面是一个求解三元一次方程组的例子(n元也一样)


program linear
use imsl
implicit none


real::a(3,3)=(/1,3,2,&
1,2,1,&
2,1,3/)
real::b(3,1)=(/4,6,6/)
real::x(3,1)


call lin_so_gen(a,b,x)!用于求解a*x=b这样一个三元一次方程组
write(*,'(3f5.2)')x


end program linear


运行程序前确认你的编译器上已经装了IMSL(有的编译器有内置的)


要想自己编程来求,最简单的可以用高斯消去法,还有很多求解这类问题的方法,可以参见“数值计算原理”这类书籍,自己编出来的可能没有用IMSL里面的数值计算过程函数的执行效率高,练习一下对熟悉一门计算机语言还是很有提高的。



对于你的第二个问题可以用一个递归程序做,也可以用循环做


下面是一个用递归来演示任意整数阶乘的程序


PROGRAM SHOW


IMPLICIT NONE


INTEGER::N,M


INTEGER,EXTERNAL::FACTORIAL



PRINT *,'输入要计算的阶乘的阶数'


READ(*,*)N


M=FACTORIAL(N)


PRINT * ,N,'!=',M



END



!FACTORIAL函数用于计算N!


RECURSIVE INTEGER FUNCTION FACTORIAL(N) RESULT(B)
IMPLICIT NONE


!INTEGER,SAVE::MUL=0
INTEGER::N
!INTEGER::I,J


IF(N<0)THEN
B=-1
RETURN
ELSE IF(N==0)THEN
B=1
RETURN
END IF
B=N*INITIALIZE(N-1)
!RETURN



END FUNCTION INITIALIZE

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问海王生物下星期是否可以介入(短线)
魔兽世界台F在达拉然这配置特效全开跑20贞正
一部外国电影名字
诺基亚6300是不是智能机?
赞美菊很多颜色的诗句,赞美白菊花的诗句
我这样的配置可以玩CF么.
QQ牧场怎么老是显示名额了?
从安康到汉中班车一天几趟啊?票价多少啊?几
我新买的尼康S220开机后待机状态好像有吱吱的
篮球有没有4分球?
有谁知道义乌哪里有制作花洒的小作坊?
数据库replace all
有关普通的名言,尊敬普通人的名人名言
求一中文歌貌似是范晓萱的
豆客现在还有作弊器没?
推荐资讯
怎么样可以瘦上半身呀?吃什么样的食物可以瘦
怎样跳绳能长高,晚上跳绳真的能长高吗?
关于股票入门的书什么书比较好?
寻仙师徒情深礼包无法领取激活码 继续上一话
怎样控制好情绪 特别是愤怒
天龙八部中的星宿是一个好职业吗
为什么我姐对追她的男孩,不管那个那男生做什
找个感人的歌曲
从学校出来的有几种人?
谁有欧美金发男模走T台的视频啊
狗找到了电线杆想撒尿可为什么还是被憋死的?
问题:QQ炫舞里哪个区里有“激情四射”的名称
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?