1. 程序运行时间问题:
数据不同,计算级别也会有很大的差异,要是解方程的话就更是如此。
我曾有一个程序参数a = 1, b=1, c =1时,大概一个小时;a=1,b=2,c=3时就6个小时。虽然循环次数相同,复杂度,精度也会出现差异。
即使相同的数据,相同程序,计算时间也会有些微的差别的。比如当时电脑有其他运行程序或者后台程序,这都可能会受到影响。
Matlab有一个很有用的功能,就是运行并计时,并且给出一个详细的报表:
它可以给出调用的每个函数用了多长时间。用相同的程序,相同时间,也会有细微不同的结果。
只要结果对,都没问题吧。
2. 符号计算的化简问题:
%符号替换
Matlab的符号计算强大,但也不看不到的地方,就比如一些矢量的化简,需要我们自己手把手来做。
clear
clc
syms tao t0 t1 t2 t3 t4 t5 t6 y
temp = (tao-t1)*(tao-t2)*(tao-t3)*(tao-t4)*(tao-t5)*(tao-t6)-t6*tao^3*(t6-t0)*(t5-t0)*(t4-t0)*(t0-t4)*(t0-t5)*(t0-t6)
temp1 = expand(temp)
temp2 = subs(temp1,[tao,t1,t2,t3],[0,1,2,3])%其中第一项为被替换的项,第二项为旧变量,第三项为新元素。