24小时热门版块排行榜    

查看: 699  |  回复: 14
当前主题已经存档。

hym5701

木虫 (小有名气)

[交流] [求助]再求解下面的线性方程组fortran程序

已知u,v,w,s,d,e怎么求a,b
sigma(an*un+bn*vn)=dn
sigma(an*wn+bn*sn)=en
不知道怎么粘贴公式,就只能像上面那样写了,sigma是求和符号,n是下标,从0到无穷大。测试通过15个金币送上,谢谢。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)


coldwind042(金币+1,VIP+0):谢谢关注!
“n是下标,从0到无穷大...”,你说的不是代数方程,是积分方程吧?无穷大的话,成了无穷维线性方程组了,怎么解啊
2楼2008-12-24 17:23:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hym5701

木虫 (小有名气)

我说的无穷大是指n是很大的一个整数,不是无穷大也没关系,现在就假设n=100好了,你知道解这个方程组吗,知道的话,能共享下你的程序吗谢谢
3楼2008-12-24 19:51:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★
hym5701(金币+5,VIP+0):谢谢你的解释,现在我假设右边dn和en是常数的话,能提供解这样的程序吗,我对fortran不是很熟悉,以前学过一点点,这个问题是我同事给我的,他说一定要用fortran解,没办法。你说可以改下,可以帮我改下吗。谢谢
lei0736(金币+3,VIP+0):谢谢
我没有现成的程序。
如果n是一个较大的数的话,假设它的上限是N,那么方程租右侧应该是N而不是n,这样就是一个二元线性方程组。如果我这么理解对的话,那直接先算出a,b的系数(un,vn之类的直接求和),直接用消去法就可以了。
如果右侧确实是n的话,那么就是2N维线性方程组,但自变量只有2个,成了超定方程,这个不能用解方程的方法求解了,只能用最小二乘法或者曲线拟合的方法了。这些算法在Fortran算法集里面都有,稍加改动就可以用,你在论坛上就能找到算法集。

这是我的理解,不知道理解对了没有
4楼2008-12-25 15:50:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★
coldwind042(金币+2,VIP+0):非常感谢!
lei0736(金币+5,VIP+0):谢谢
这么说的话就是第一种理解?那就简单了,程序如下d*MAXN就是dn,常数,以此类推。MaxN是N的上限。               
Integer        N,MaxN
Real U,V,W,S,D,E,a,b
Real un,vn,wn,sn
Real uu,vv,ww,ss,NN,deno

Read (*,*) MAXN,U,V,W,S,D,E
      un = 0
      vn = 0
        wn = 0
        sn = 0
        Do N = 1,MAXN
            NN = N*N
            un = un + U*NN
                vn = vn + V*NN
                wn = wn + W*NN
                sn = sn + S*NN
        End do
        deno = un*sn - wn*vn
        If (abs(deno) >= 0.000001 ) then
                a = (sn*D*MAXN - vn*E*MAXN) / deno
                b = (D*MAXN - un*a) / vn
                write(*,*) "a = ",a," b = ",b
        Else
            write(*,*) "please check the input data!"
        End if

        End
5楼2008-12-25 18:36:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)

你自己验证一下
6楼2008-12-25 18:37:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hym5701

木虫 (小有名气)

你的这个程序我看的不是很懂,我想你的理解还是有点不对,注意公式里a和b都是和n有关的,比如说n=3的话,也就是说a和b都有3个数值,好像你的那个程序里面把a和b当成一个常数了是吧,不知道是不是我看错了,还请你将程序说明下以及算法,谢谢,特别是NN=N*N,就取1,4,9,16.。。。。这有什么特殊的用途?
7楼2008-12-25 20:15:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)


coldwind042(金币+1,VIP+0):谢谢帮助!
那你应该写成a(n)和b(n),这样大家一看就清楚了,a,b都是数组。
你把公式抓图贴上来吧。否则容易理解错了
8楼2008-12-25 21:21:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hym5701

木虫 (小有名气)

引用回帖:
Originally posted by 728728 at 2008-12-25 21:21:
那你应该写成a(n)和b(n),这样大家一看就清楚了,a,b都是数组。
你把公式抓图贴上来吧。否则容易理解错了

怎么粘贴图,我发了看不到,怎么办,版主帮下忙吧

麻烦你了谢谢

[ Last edited by hym5701 on 2008-12-25 at 22:52 ]
9楼2008-12-25 22:37:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coldwind042

金虫 (正式写手)

★ ★ ★
woshilsh(金币+3,VIP+0):thanks for your help!
你把图片先保存成jpg格式,然后回帖时采用回复贴子(记住,不是快速回复),然后寻找插入图片的图片,插入图片,发表就ok!
10楼2008-12-26 09:59:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hym5701 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见