以文本方式查看主题 - 声学楼论坛 (http://www.nju520.com/bbs/index.asp) -- 软件应用及仿真室 (http://www.nju520.com/bbs/list.asp?boardid=2) ---- 超强的数学计算软件SciLab (http://www.nju520.com/bbs/dispbbs.asp?boardid=2&id=14891) |
-- 作者:国明 -- 发布时间:2008-12-9 16:15:29 -- 超强的数学计算软件SciLab SCILAB 是由法国国家信息、自动化研究院(INRIA)的科学家们开发的“开放源码”软件。SCILAB 一词来源于英文“Scientific Laboratory"(科学实验室)词头的合并。与MATLAB 类似,SCILAB也是一种科学工程计算软件,其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等各个方面。它还提供可以满足不同工程与科学需要的工具箱,例如SCICOS,信号处理工具箱,图与网络工具箱等。可以说,就基本的功能如科学计算、矩阵处理及图形显示而言,MATLAB 能完成的工作SCILAB都可以实现。 由于SCILAB的语法与MATLAB非常接近,熟悉MATLAB编程的人很快就会掌握SCILAB的使用。有意思的是,SCILAB提供的语言转换函数可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。目前,SCILAB除了WINDOWS与NT版本外,还有多种UNIX或LINUX下的版本,如SGI MIPS Irix, PC Linux, Sun Sparc stations(Sun Solaris) 等。
随着科学技术的普及发展,以及计算机应用进入各个领域,使用科学计算软件已经变成越来越常规的工作。在这样的背景下,MATLAB(主要是基于数值式计算)、MAPLE(主要是基于符号式计算)等科学计算软件得到了迅猛发展。正像计算机的许多发展已经超出我们的初始想象,科学计算软件的广阔发展前景以及未来得到的普及应用,同样是我们不可低估的。
科学计算(如加、减、乘、除、微积分、逻辑推理等)是计算机应用的主要内容之一。以完成这一类科学计算问题为目的应用软件,我们称之为科学计算软件。在此,我们应该对“科学计算软件”一词有更广义的理解。它不仅限于科学方面的应用,也包括各种工程技术、金融、经济等方面的应用。目前这类软件多数是以数值计算形式为主,然而基于符号推导(如公式推导)的计算软件也变得日益普及。除此之外,科学计算可视化同样是该类软件的涵盖内容。
|
-- 作者:国明 -- 发布时间:2008-12-9 16:24:22 -- SciLab作为开源软件, 除了完全免费是最大的好处之外, 其开发者汇集全球软件专才与科学家, 本着爱好与兴趣投入开发, 其功能,界面日益增强, Matlab能做的功能Scilab都能做, 现在已经超过Matlab了. 清华,北航,浙大,电子科大等十几所国内高级大学已经在学生之间推广Scilab. 可见, 作为科技工程师不识SciLab, 用遍数学模拟软件也枉然! 网址: www.scilab.org www.scilab.org.cn 另附数学模拟软件的排名(除了Scilab,其他都是高价的商业软件): No.1 Mathematica No.2 SciLab No.3 Matlab No.4 MathCAD |
-- 作者:国明 -- 发布时间:2008-12-9 16:34:08 -- SciLab应用一例(我自己出的题让Scilab来做): 求解方程: Sin(x)=Log(x), (Log指以10为底的对数) 解: 这个方程是一个超越方程, 无法用常规方法求解. 我们将方程输入SciLab以后, Scilab轻松画出两个函数的图形(如下), 可以看到, 两个函数在1-10范围内有3个交点, 因此方程有3个根. 直接输入求解命令fsolve: 得 ans = 2.6962566 ans = 7.3283478 ans = 8.2638297 (为方便阅读Scilab的结果显示只不过保留小数点后6位,精度足以满足要求) 只简单的一行算式命令就解出一个复杂方程,Scilab强大得不可思议 此主题相关图片如下:sci.jpg |
-- 作者:国明 -- 发布时间:2008-12-9 16:59:27 -- 贴一个网上找到的用Matlab求解超越方程的算法,可以看到,Matlab要编一个小程序,写好几行算法,让Matlab一个个去比大小. 最后解出来的东西还不是准确值,与Scilab一步解决问题相比, Matlab就是垃圾 ---------------------------------------- 超越方程可以用功能强大的matlab求解 在此举一个已知弦长和弧长求园半径的例子. 法一:使用自带函数 %ezplot(\'x*sin(pi/(6*x))-0.5\',[0.6,2]) 示例:半径=1,六分之一圆弧 ezplot(\'x*sin(b/x)-a\',[0.6,2]) %求解方程:x*sin(b/x)-a=0 %ezplot(\'x*sin(pi/(4*x))-0.707\',[0.6,2]) hold on plot(xlim,[0 0],\'r\') grid % a=弦长/2 , b=弧长/2 ,【】为解区间. % 图中红线和蓝线的交点就是解 % 更精确的解可以使用二分法求解 % 本例可以选择交点两侧的点[2,4],[5,7]再次求解,可以更精确 % 本人认为如此处理没有解不出来的超越方程 法二:差值法收敛求解 a=0.707; %弦长/2 b=pi/4; %弧长/2 r1=0; %收敛区间 r2=3; for i=1:10000 %收敛次数 r=(r1+r2)/2; % c(i)=r*sin((180*b)/(pi*r)); c(i)=r*sin(pi/(4*r)); % c(i)=r*sin(b/r); if c(i)>a r2=r else r1=r end end end |
-- 作者:laymanaudio -- 发布时间:2009-2-4 9:35:22 -- 强人! |
-- 作者:lxtspks -- 发布时间:2009-10-10 17:08:36 -- 太强啦!!!专业文采又好. |
-- 作者:honeybee -- 发布时间:2009-10-19 20:16:20 -- 惭愧,从来没有用过。听闻而已,貌似我也是理工毕业 |
-- 作者:钟灵 -- 发布时间:2009-10-27 12:51:51 -- 下载了,还没用. |
-- 作者:nisa -- 发布时间:2013-2-7 14:11:08 -- Matlab现在是放任盗版,等哪天它就象微软那样加倍收取版权费;而Scilab更象是开源的Linux; 经济实惠,首推Scilab; 有能力腐败的单位, 还是用Matlab. |