首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LabVIEW编程实例:使用公式节点,求解一元二次方程的根

公式节点介绍

LabVIEW是一种图形化的编程语言,在框图程序中,如果涉及到了复杂的数学运算,框图程序的连线将会十分繁琐复杂,而且不直观,调试、改错也不是太方便,这时候,就可以用LabVIEW中提供的公式节点函数实现相应的计算功能了,其位于函数面板的“编程”-->“结构”子面板中。

在公式节点中输入文本公式时,其语法同C语言类似,如每个公式语句必须以分号结束,可使用内置的多种数学函数,包括abs、sin、sinc、cos、ceil、exp、floor、log、log2、max、min、mod、pow、rand、sign、tanh等,同时,公式节点中可声明变量,也支持一些常用的C语言的语句(包括赋值语句、 if条件语句、 for和do、while循环语句、Switch分支语句)等。公式节点与C语言语言的区别在于一些变量类型的声明上有着细微区别。

利用公式节点,将数学公式的文本表达式输入在公式节点的框图内,并连接相应的输入、输出端口,则LabVIEW会自动根据公式计算出正确的结果,并从输出端输出。

下面通过使用公式节点求解一元二次方程的例子,说明公式节点的编程方法。

示例说明

对于如下的一元二次方程:

设计LabVIEW程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。

根据题目要求,设计前面板如下图所示:

在前面板上,a、b、c三个控件用作一元二次方程系数的输入,x1、x2作为方程根的结果输出。其中,a、b、c控件类型为double(双精度)类型,x1、x2为complex double(双精度复数)类型。

编程思路及程序框图实现

对于上面的一元该方程,令delta=b^2-4*a*c,从数学上来讲,需根据delta的值来判断该方程的根情况:

当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

当delta

其中,sqrt(delta)代表对delta作开根号运算。

根据上面的分析,设计程序框图如下图所示:

程序框图使用while循环+事件结构的框架,在三个系数a、b、c值改变事件中使用公式节点计算方程的根。

在公式节点中,根据a、b、c的输入,判断delt的值,根据其值情况求解一元二次方程的根。两个根皆用复数表示,在公式内部求解其实部和虚部值。注意,当delt>0时,其虚部值为0。最后,在公式节点外部使用“实部虚部至复数转换”函数将其组合为复数,作为最终方程的根。

至此,程序就设计完成了,当在前面板修改系数a、b、c的值时,会实时显示出当前一元二次方程的根情况。

总结

这儿演示了在LabVIEW中使用公式节点求解一元二次方程根的编程方法,通过这个例子,可看出在LabVIEW中使用公式节点进行编程的一般步骤如下:

1. 创建新的公式节点

2. 在框中输入文本行表示的数学公式和文本语句

3. 添加输入/输出数据端口,并命名(与公式中变量同名)

4. 将数据端口与公式节点的输入/输出端口进行连接,通过输出端口得到计算结果

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190403A0FNQO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券