matlab 如何把解析解变成数值解

作者&投稿:扶牵 (若有异议请与网页底部的电邮联系)
matlab 解析解转换数值解~

你可能误解了解析解与数值解的来源。

solve给你的是解析解,你得到解析解以后,给参数赋值,然后再使用eval()函数,即可得到结果(但不是你说的数值解)。

如果需要数值解,用积分来说吧,我们有辛普森(simposon),Trapzoidal等方法,解方程还有gradient based等。

这些Matlab也有相关的函数。

建议你看一本书,叫做:Computaitonal Methods for Engineers,里面都是用Matlab实现数值解的方法。

1、打开matlab软件主界面,如图所示。

2、在命令窗口输入内容后,加上分号,回车后,输出数据不显示。若内容后面不带分号,回车后,输出数据可显示。如图所示。

3、在脚本文件里,可以选用disp显示函数对输出内容进行显示。如图所示。

4、也可以用fprintf函数显示数据,格式为fprintf(format,data),format为打印数据格式,data代表打印的标量或数组。如图所示。

5、fprintf函数括号内的%6.2代表第一个数据项占有6个字符宽度,小数点后的数值表示有2位小数,
表示换行。如图所示。

如何把解析解变成数值解,可以用matlab的eval()函数来解决。例如:

syms x

y=50*x^3+25*x^2-100;

x=0:0.5:10;

y=eval(y)

运行结果




城关区15021639477: matlab将结果中的数字表达式变成数值就是,我用符号法解方程,解出来的结果往往是数字的一大串表达式,怎么把这个表达式变成一个具体的数值呢? -
竺郎扶济:[答案] 使用eval函数就行了! sym('2*3^5/(22222*11111)') ans = 243/123454321 >> eval(ans) ans = 1.9683e-006

城关区15021639477: matlab中如何将多项式的解析系数变成数值系数 -
竺郎扶济: 试试vpa( xxx, 6 ); xxx就是你的那个系数变量,6表示保留6位小数

城关区15021639477: matlab 符号方程结果怎么变成数值? -
竺郎扶济: 在你的语言后面加上一句 eval(h); 就可以了,效果见下图

城关区15021639477: MATLAB 如何将计算结果的变量显示成数值结果? -
竺郎扶济: 如果变量里有符号量就不好表示了,如果是数做解就直接用强制类型转换.int(),double()都行!

城关区15021639477: matlab将结果中的数字表达式变成数值
竺郎扶济: 使用eval函数就行了! sym('2*3^5/(22222*11111)') ans = 243/123454321 >> eval(ans) ans = 1.9683e-006

城关区15021639477: matlab解方程结果如何变成数,我的参数在之前已经赋值 -
竺郎扶济: 如果赋值没有错误的话,回车就好了,要是不行的话,你还要自己查对你的赋值命令,鸟东西,一个标点都不能少

城关区15021639477: matlab 数值解比如有方程 y^3+x^2+3x - 2y=1 其中x的区间为0到10 如何让matlab求解数值解y呢? -
竺郎扶济:[答案] x = 0; feqn = @(y) y^3+x^2+3*x-2*y-1; y = fzero(feqn, 1); 这样就可以求出x=0时y的解.不断改变x就可以求出对应的y.

城关区15021639477: matlab这两个函数怎么解? -
竺郎扶济: solve 无法得到解析解时,会自动转到数值方法求解(见Help), 所以实际上是数值求解出来的, 也就是与初值有关, 这就是只得到一个解的原因.

城关区15021639477: matlab如何让用solve程序算出来的数成为一个数,而不是公式? -
竺郎扶济: 搜一下:matlab如何让用solve程序算出来的数成为一个数,而不是公式?

城关区15021639477: matlab, 将字符串转化为数字,S2552 - S3903 - S1553 - S0840 - S3531 - S1967 - S0012 - S2636 -
竺郎扶济: s='S2552-S3903-S1553-S0840-S3531-S1967-S0012-S2636' n=cellfun(@str2num,regexp(s,'\d*','match'))

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网