投稿者 スレッド: 線形代数と、そのtbasicでの処理方法をご伝授求む  (Read 2259 times)

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
線形代数と、そのtbasicでの処理方法をご伝授求む
« 投稿日:: 2018年 4月 06日 , 午後 04:16:52 »
takeuchi先生へ、スレが重なるような真似をしてすみません。
線形代数の基本的な本と、それをベーシックで実現させるのに必要な知識をご伝授、願えないでしょうか(数値計算??)?
ごくごく基本的な部分でも、成功体験を重ねて、ぜひ、スキルを磨きたいなと思っています。・・・!!!

takeuchi

  • 管理人
  • *****
  • 投稿: 97
Re:線形代数と、そのtbasicでの処理方法をご伝授求む
« Reply #1 投稿日:: 2018年 4月 10日 , 午後 11:15:57 »
こんにちは,

> 線形代数の基本的な本と、それをベーシックで実現させるのに必要な知識をご伝授、
> 願えないでしょうか(数値計算??)?

線形代数の書籍の紹介は,ここの掲示板の趣旨と,それに余りにも沢山あるので,
無理です。基本的と言うのであれば,線形代数の教科書であればどんな本でも良いと思います。

線形代数の問題をBASICを使って処理するというのも余り適切ではありませんが,
BASICの練習を簡単な数学で行うという意味はあるでしょう。

線形代数での基本は行列演算ですから,これが実現できれば後は,進んで
数値計算の問題になります。

例として2つのプログラムを以下に載せます。
ベクトル演算と行列計算の例です。これの応用として色々なことが出来る筈です。


« Last Edit: 2018年 4月 10日 , 午後 11:24:43 by takeuchi »

takeuchi

  • 管理人
  • *****
  • 投稿: 97
Re:線形代数と、そのtbasicでの処理方法をご伝授求む
« Reply #2 投稿日:: 2018年 4月 10日 , 午後 11:25:35 »
'-----------------------------------
' ベクトルの演算
Dim A(5)
Dim B(5)
Call ReadData(A(),5)
Call ReadData(B(),5)
Call PrintData(A(),5)
Call PrintData(B(),5)

Call ScalarP(4,a(),b(),5)
Call PrintData(B(),5)

Call AddV(a(),b(),b(),5)
Call PrintData(B(),5)

End
'------------------------------
Data 1,2,3,4,5
Data 6,7,8,9,10
'------------------------------
Sub ReadData(D(),n)
   For i=1 to n
     Read D(i)
   Next i
End Sub

Sub PrintData(D(),n)
   For i=1 to n-1
      Print D(i);";";
   Next i
   Print D(n)
End Sub
'------------------------------
Sub ScalarP(c,a(),b(),n) ' b()=c*a()
   For i=1 to n
      b(i)=c*a(i)
   Next i
End Sub

Sub AddV(a(),b(),c(),n) ' c() = a() + b()
   For i=1 to n
      c(i)=a(i)+b(i)
   Next i
End Sub
'--------------------------------

takeuchi

  • 管理人
  • *****
  • 投稿: 97
Re:線形代数と、そのtbasicでの処理方法をご伝授求む
« Reply #3 投稿日:: 2018年 4月 10日 , 午後 11:26:32 »
'----------------------------
' 行列の演算
'----------------------------
Dim A(3,3)
Dim B(3,4)
Dim A1(4,2)
Dim B1(2,5)
Dim C(5,5)

Call MatRead(A(),3,3)
Call MatPrint(A(),3,3)

Call MatRead(B(),3,4)
Call MatPrint(B(),3,4)

Call MatMul(A(),B(),C(),3,3,4)
Call MatPrint(C(),3,4)


Call MatRead(A1(),4,2)
Call MatPrint(A1(),4,2)

Call MatRead(B1(),2,5)
Call MatPrint(B1(),2,5)

Call MatMul(A1(),B1(),C(),4,2,5)
Call MatPrint(C(),4,5)

End

'--------------------------
'(a) A
Data 1 , 2, 3
Data 4 , 5, 6
Data 7 , 8,  9
'--------------------------
'(a) B
Data -1,  2, -3,  4
Data  5, -6,  7, -8
Data -9, 10, -11, 12
'--------------------------
'(b) A
Data 1, 2
Data 4, 5
Data 7, 8
Data 3, 6
'--------------------------
'(b) B
Data -1, 2, -3, 4,  -5
Data 5 ,-6, 7, -8,   9
'--------------------------

Sub MatRead(A(),n,m)
   For i=1 to n
      For j=1 to m
         Read A(i,j)
      Next j
   Next i
End Sub

Sub MatPrint(A(),n,m)
   Print
   For i=1 to n
      For j=1 to m
         Print A(i,j); " ";Tab(6*j);
      Next j
      Print
   Next i
End Sub

Sub MatMul(A(),B(),C(),m,n,r)
   For i=1 to m
      For j=1 to r
         S=0
         For k=1 to N
            S=S+A(i,k)*B(k,j)
         Next k
         C(i,j)=S
      Next j
   Next i
End Sub
'----------------------------

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:線形代数と、そのtbasicでの処理方法をご伝授求む
« Reply #4 投稿日:: 2018年 4月 11日 , 午前 11:57:03 »
takeuchi先生へご多忙中にすみません。
測量の数値計算処理を挑戦してみたいなー、と、
思っていました。
今基本にお立ち戻ろうと思います。
アマチュア無線技士4級を取りたいです。