打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LabVIEW编程:使用公式节点,简化程序代码,求解一元二次方程根

公式节点介绍

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

在公式节点中输入文本公式时,其语法同C语言类似,如每个公式语句必须以分号结束,可使用内置的多种数学函数,包括abssinsinccosceilexpfloorloglog2maxminmodpowrandsigntanh等,同时,公式节点中可声明变量,也支持一些常用的C语言的语句(包括赋值语句、if条件语句、 fordowhile循环语句、Switch分支语句)等。公式节点与C语言语言的区别在于一些变量类型的声明上有着细微区别。

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

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

示例说明

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

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

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

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

编程思路及程序框图实现

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

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

delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)-sqrt(-delta)/(2*a)

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

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

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

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

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

总结

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

1.  创建新的公式节点

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

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

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

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第11章 LabVIEW编程规范
如何使用 LabVIEW 调用 c#编写的 DLL
简评一元二次方程的罗博深解法
还在纠结LabVIEW能干啥?熟练掌握LabVIEW技能,高薪不是梦
LabVIEW问题,为什么在帮助里点击“添加至程序框图”没反应?
LabVIEW在串口通信中的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服