计算多条线段总长的lisp程序_矢量的计算机处理59_1VBvs

计算机语言运用--数值计算5-矢量的计算机处理59_1VBvs

计算机:电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。

计算机语言有低级语言-机器语言、汇编、高级语言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。

作为一种计算机器—可以协助人类处理各种事情—数值计算问题、文字处理问题、图形图像处理问题、事务问题……。自从有了数字计算的计算机器,几乎所有的可以交给计算机的事情,都交给计算机来处理—是辅助处理—按照人们的要求—事先安排的模式进行处理。

数值计算—最基本最简单的计算机辅助应用

代数的计算、初等函数的计算、代数方程的求解、解析几何与微分几何的求解、矢量-张量与场论的求解、抽象代数-空间及泛函分析、级数与变换、特殊函数问题、概率统计与随机过程分析计算、误差分析与实验数据处理、最优化方法分析、有限单元法求解、数论分析、集合论及其计算、拓扑学分析与计算、组合数学的计算、图结构处理、数理逻辑分析与处理、……、……

或者说:

自然数的计算、整数的计算、实数的计算、复数的计算、矢量-向量的计算、张量、矩阵的计算、函数的计算、代数方程的计算、函数方程的计算、微分的计算、积分的计算、常微分-一元微分方程的计算、偏微分-多元微分方程的计算、连续数量的计算、离散数量的计算、集合的计算、组合数学的计算、……、……

或者说:科学与工程技术应用中的数值计算、……、……

向量的计算—只是一种概念的表达—在向量的范围内—向量计算结果仍然为向量?不一定了。向量有加减乘除吗?

向量最初来自于物理学的力学,也就是力的合成问题。实践-实验发现,两个力合在一起(和在一起),与两个力的角度有关!二力在同一直线上,可以用代数和(同方向加,反方向减);二力不在同一直线上,则遵循几何学的规则—平行四边形法则。由此称谓:叫二力合成,而不是叫做二力相加(减)。在力的应用中—矢量的物理或几何应用中,物理学者或数学游戏者发现,两个矢量的点积(力-向量在位移-向量上做功)为一个数量值。两个矢量的叉积仍为一个矢量等等。当然还有场论中的梯度、散度、旋度等。复杂曲面问题、流体问题、粘性体问题、……,嗨,多了去了。

这些表达应用矢量,则整体表达属性或状态完整、概念(内涵与外延)清晰(就像软件中的—对象-类-结构体那样,可以表达一个事物-事务元素的整体样貌—属性集合)。理论推导当然好,可数学中的量化-数值计算定量分析成了问题。好在矢量有几何特性,可以用坐标法—矢量的投影—正交投影(或仿射坐标系)来解决问题。由此便有了转换表达式:

071703a0511f7f7e449760cdcd271226.png 

由此便有了计算机语言的描述方法,可以用代数和(同方向加,反方向减)来解决适量的合成与分解(加减)、数性积、矢性积等计算。

也就有了矢量的微积分问题—连续量—实数集;曲线曲面扭曲体的仿射坐标系(基坐标非直角型),有了张量分析(流体、粘性流体、塑性大变形等研究)。

简单介绍的目的是想说:有了坐标法,矢量的计算机处理,实际上就是在实数系中的计算问题了。由于通常会有三个坐标轴X,Y,Z,故此就用三元数组来表达。

当然,随着线性代数方程组的出现,矩阵理论的应用,向量概念被扩展—N维向量出现了。也就有了新的运算规则。但只要按照N元数组来表达就可以了。

实数构成连续量的基础,。也就是说,任意两个实数量之间可以再插入一个实数-无限可加。这是自然数、整数所没有的特性。据此就说,自然数、整数是离散数。复数的实部与虚部可以是自然数、整数、实数。向量的分量也可以是自然数、整数、实数。其实向量的分量通常会是实数—因为投影(角度的正余弦)所致。

由此,引出向量的计算方法与自然数、整数有很大的不同。但与实数计算就没了区别。只是规则要遵守矢量自身的法则而已。

自然数、整数、实数的兼容-混合使用可以沿用到矢量_vectors

 数与数的间隔—步长可以任意设置。

但是以下的算法要改变了

实数的连加:算法为i=0,i=n,ans= ans +i

实数的连减:算法为i=0,i=n,ans= ans +i

实数的连乘:算法为i=1,ans= ans *i

实数的连除:算法为i=1,ans= ans /i

实数的加减乘除:算法为ans=?

相同的实数的连加:算法为ans=a*n

相同的实数的连减:算法为ans=?

相同的实数的连乘:算法为i=4,ans=4n 

相同的实数的连除:算法为ans=?

……、……

复数的最基本、最简、不可再化简形式是Z=a+ib;请看看分数的表示法,最基本、最简、不可再化简形式是1/2、2/3、a/b、……;一个整体。

有了这些基本要素,就可以得到复数系及其_具有实参数系数且具有连续性下的复变函数、微积分、积分变换、映射、……等等概念与应用了。复数终于站住脚了。

在实数轴上,每一个实数都是其上的一个点,但也有人说,它代表了该点离开原点的距离。因此可以用一个有向线段—射线来表达。有向线段可以与向量_矢量概念相连。很有趣。那么,复数在复平面中,也可以用有向线段来表达。可以与向量_矢量概念相连。可以用几何图形来表达。

矢量的概念本来就是用图形—几何法来表达的,使用几何作图来计算其各种加减乘除结果的。只是为了数值计算方便、为了计算精度而采用了解析法中的坐标系转化一下。计算机处理就是数值法,因此就使用了坐标法,而将坐标法转换为数组表达。

向量投影的实数值需要根据向量的运算法则进行加减乘运算。

向量的计算机处理:   基本表达/坐标表达法—R=Xi+Yj+Zk;其中X;Y;Z均为实数—三个轴均为实轴。(注意:复数的矢量表示法—Z=r,其在直角坐标上的两个投影为a;b,x轴视为实轴,y轴视为虚轴。)如此看来,就成了三个实数及其各自的计算,也就是计算机语言中的数组问题。好了,下面就来看各种语言及其平台上的描述。

MATLAB语言及其平台   Fortran语言及其平台    C语言及其平台V6    C语言及其平台VS   C++语言及其平台V6    C++语言及其平台VS    C#语言及其平台VS

VB语言及其平台V6

%向量的计算—各个相应坐标分量分别进行计算

%向量的大小称为向量的模,计算式为|R|=(X2+Y2+Z2)1/2

%向量的方向角需要一个参照_有一个设定的方向基准

为了可以图示,采用二维向量示范。

4fd5b21c49ff287e9a12d384e6d1e48b.png

矢量_vectors

加减乘除及其四则混合运算

MATLAB语言有复数数据类型,向量则用数组表达—这与矩阵是相通的。恰好MATLAB语言的数据基础就是矩阵。

向量的合成(加或减)— 算法公式

X=X1+X2+X3       Y=Y1+Y2+Y3   

Z=Z1+Z2+Z3      |R|=(X2+Y2+Z2)1/2

数组表达     R1à[X1, Y1, Z1]   R2à[X2, Y2, Z2]    R3à[X3, Y3, Z3]

数组元素—矩阵元素可以是:自然数、整数、实数。数组与矩阵的区别在于矩阵的元素是要严格对应的次序—各个坐标分量严格对应。 

向量-矩阵-数组的计算问题

vecters_computer----实数的计算问题

VB语言向量计算—实质上是一个N元数组问题—也可以用数据元素来处理

处理程序

Public Class Form1

    Dim R1x, R1y, R2x, R2y As Single

    Dim Raddx, Raddy, Rsubtrx,Rsubtry, Rmult, Rmultz As Single

    Dim R31x, R31y, R31z, R32x, R32y,R32z As Single

    Dim R3addx, R3addy, R3addz,R3subtrx, R3subtry, R3subtrz, R3mult, R3multx, R3multy, R3multz As Single

    Private Sub Button1_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Button1 in

        TextBox1.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox1.ForeColor =Color.Green

        TextBox2.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox2.ForeColor =Color.Green

        TextBox6.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox6.ForeColor =Color.Green

        TextBox7.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox7.ForeColor =Color.Green

        R1x = TextBox1.Text

        R1y = TextBox2.Text

        R2x = TextBox6.Text

        R2y = TextBox7.Text

    End Sub

    Private Sub Button2_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'Button2 computer

        TextBox8.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox8.ForeColor =Color.Red

        TextBox9.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox9.ForeColor = Color.Red

        TextBox10.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox10.ForeColor =Color.Red

        TextBox11.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox11.ForeColor =Color.Red

        TextBox12.Font = NewSystem.Drawing.Font("华文新魏", 10, FontStyle.Bold)

        TextBox12.ForeColor =Color.Red

        TextBox13.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox13.ForeColor =Color.Red

        TextBox14.Font = NewSystem.Drawing.Font("华文新魏", 10, FontStyle.Bold)

        TextBox14.ForeColor =Color.Red

        TextBox15.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox15.ForeColor =Color.Red

        Raddx = R1x + R2x

        Raddy = R1y + R2y

        Rsubtrx = R1x - R2x

        Rsubtry = R1y - R2y

        Rmult = R1x * R1y + R2x * R2y

        Rmultz = R1x * R2y - R2x *R1y

        TextBox8.Text = Raddx

        TextBox9.Text = Raddy

        TextBox10.Text = Rsubtrx

        TextBox11.Text = Rsubtry

        TextBox12.Text = "点乘-数-大小"

        TextBox13.Text = Rmult

        TextBox14.Text = "叉乘-大小-正交"

        TextBox15.Text = Rmultz

    End Sub

    Private Sub Button6_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

        'Button6 in

        TextBox3.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox3.ForeColor =Color.Green

        TextBox4.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox4.ForeColor =Color.Green

        TextBox19.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox19.ForeColor =Color.Green

        TextBox20.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox20.ForeColor = Color.Green

        TextBox25.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox25.ForeColor =Color.Green

        TextBox26.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox26.ForeColor =Color.Green

        R31x = TextBox3.Text

        R31y = TextBox19.Text

        R31z = TextBox25.Text

        R32x = TextBox4.Text

        R32y = TextBox20.Text

        R32z = TextBox26.Text

    End Sub

    Private Sub Button3_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        'Button3 computer

        TextBox5.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox5.ForeColor =Color.Blue

        TextBox16.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox16.ForeColor =Color.Blue

        TextBox17.Font = NewSystem.Drawing.Font("华文新魏", 12, FontStyle.Bold)

        TextBox17.ForeColor =Color.Red

        TextBox18.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox18.ForeColor =Color.Red

        TextBox21.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox21.ForeColor =Color.Blue

        TextBox22.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox22.ForeColor =Color.Blue

        TextBox23.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox23.ForeColor =Color.Red

        TextBox24.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox24.ForeColor =Color.Red

        TextBox27.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox27.ForeColor =Color.Blue

        TextBox28.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox28.ForeColor =Color.Blue

        TextBox30.Font = NewSystem.Drawing.Font("华文新魏", 16, FontStyle.Bold)

        TextBox30.ForeColor =Color.Red

        'R31x, R31y, R31z, R32x,R32y, R32z

        R3addx = R31x + R32x

        R3addy = R31y + R32y

        R3addz = R31z + R32z

        R3subtrx = R31x - R32x

        R3subtry = R31y - R32y

        R3subtrz = R31z - R32z

        R3mult = R31x * R32x + R31y *R32y + R31z * R32z

        R3multx = R31y * R32z - R32y* R31z

        R3multy = R31z * R32x - R31x* R32z

        R3multz = R31x * R32y - R31y* R32x

        TextBox5.Text = R3addx

        TextBox21.Text = R3addy

        TextBox27.Text = R3addz

        TextBox16.Text = R3subtrx

        TextBox22.Text = R3subtry

        TextBox28.Text = R3subtrz

        TextBox17.Text = "点乘-数-大小"

        TextBox23.Text = R3mult

        Label11.ForeColor = Color.Red

        TextBox18.Text = R3multx

        TextBox24.Text = R3multy

        TextBox30.Text = R3multz

       End Sub

    Private Sub Button5_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        End

    End Sub

    Private Sub Button4_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        'out_save

    End Sub

    Private Sub Button7_Click(ByValsender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

        TextBox1.Text = ""

        TextBox2.Text = ""

        TextBox3.Text = ""

        TextBox4.Text = ""

        TextBox5.Text = ""

        TextBox6.Text = ""

        TextBox7.Text = ""

        TextBox8.Text = ""

        TextBox9.Text = ""

        TextBox10.Text = ""

        TextBox11.Text = ""

        TextBox12.Text = ""

        TextBox13.Text = ""

        TextBox14.Text = ""

        TextBox15.Text = ""

        TextBox16.Text = ""

        TextBox17.Text = ""

        TextBox18.Text = ""

        TextBox19.Text = ""

        TextBox20.Text = ""

        TextBox21.Text = ""

        TextBox22.Text = ""

        TextBox23.Text = ""

        TextBox24.Text = ""

        TextBox25.Text = ""

        TextBox26.Text = ""

        TextBox27.Text = ""

        TextBox28.Text = ""

        TextBox30.Text = ""

    End Sub

End Class

处理结果

c64dc02abbf503255e66927cfbe6d546.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值