前言
在上一篇文章中,我们学习了matlab的对外输出能力
格式化字符串
写在文件里
调整matlab的字符编码格式
编写代码时的提示
这话要开始了
计算一元二次方程
这个故事从科学的计算开始,使用matlab计算的精度很高,所以计算一下黄金分割率吧。 (定义大家可以自己百度一下,但在此不再赘述。 )
计算黄金分割率的公式如下。
使用加法运算的话1.618 .使用减法运算的话0.618 .都可以得到正确的结果。 因为他们俩只差一
首先,让我们转换一下这个表达式。 去掉根号,变换为一元二次方程。
(号时无解,故舍去) ) ) )。
然后用matlab求解这个方程式就可以了!
清除
clc;
%%本程序求黄金比例
% r^2 - r - 1=0的解比。
p=[1 -1 -1];
%此数组表示上式的二次项系数、一次项系数和常数项。
r=roots(p );
print_str=sprintf(r^2-r-1=0的结果为:%f和%fn ',r );
disp(print_str;
结果如下。
你会发现这两个数是我们需要的结果。
当然,如果实现不知道单个系数,只知道公式(假设),就可以使用solve函数进行计算,可以节省很多时间:
%%第二种计算方法。
清除
clc;
R2=solve(R^2-R-1=0);
print_str=sprintf(r*r-r-1=0的结果为:%f和%fn ',r2 );
disp(print_str;
同样可以得到我们想要的结果,但是请注意,占位符绝对不能用%f写在其他东西上。
但是,你可能觉得这个精度不高,但没问题。 使用vpa方法,可以提高到很多位数!
第一个参数是我们的数据,第二个参数精确到小数点后的位数。 可以得到很多比特的结果。 (理论似乎是无限的,但前提是电脑的CPU足够强、耐心、内存足够大。 在我的电脑上,计算到小数点以下5万位明显慢了1秒左右。 )
看一元方程式的图形
上面计算了这个方程式。 众所周知,在数学中,一元二次方程表示为开口向上或向下的抛物线,方程的解是与x轴的交点,即零点。
那么如何用matlab来表达呢? 下面的代码!
显示%%函数的图像
f=inline(x^2-x-1 ); %写我们的函数
%但是,这个inline马上就不能使用了,但是因为是前期的学习,所以请不要在意
ezplot(f,- 4,4 ); %显示了我们的函数图表,
保持打开;
可以得到我们想要的东西:
正如你所看到的,x=0的水平线有我们两个x的值。
有一点疑问吗?
要不要把我们写成别的形式? 很容易看出,这两个人的图像虽然图形不同,但也是黄金比公式的变形,只要移动项消除即可得到这种形式。 很明显,这个世界上不存在点(点0,不成为分母),这个公式的图形也明显类似反比例函数)在点0的不连续点是第二类的不连续点,在0为正的无限大,在0-0为负的无限大)。
这个没关系! matlab计算我们需要的函数的图形,如果有间断点,为了尽可能满足我们计算极限。 这次在代码中表示这个解的位置。 代码如下。
%%第二种格式
f=inline('1/x-) (x-1 ) ); %写我们的函数
ezplot(f,- 2,2 );
ZEOR1=fZero(f,1 ); %查找第一个函数的零点,在x=1附近
zero2=fzero(f,-1); 查找x=-1附近的第二个函数的零点
保持打开;
plot (zeo R1,0,' o ' ); %在第一个零点处绘制字母o
零2,0,' o ' ); %在第一个零点处绘制字母o
然后,图表像预想的那样显示双曲线,在零点上显示我们的符号。
小鸡蛋:
计算sinx/x的0处之比。 我们知道x-0时,sinx和x是等价无穷小,比是1。 那么,让我们看看图形吧。
那么,这个图形的函数,大家自己解决哦!
今天的总结
今天,我们学习了使用roots函数求一元二次方程根的知识点。
使用solve函数求方程式的根(大家可以试试三次函数等。 没有实数根据的大家也可以试试。 我们要从认识中获得实践,并通过实践获得新的认识。 )
使用inline和ezplot函数绘制函数的图形(小技巧: ezplot相似: easy plot,简单易懂) ) )。
使用fzero和plot函数绘制一个点的零点。
今天来了这里! 谢谢您的观看。 希望我们一起进步!