完全零基础自学matlab之百题训练

您所在的位置:网站首页 MATLAB如何自学 完全零基础自学matlab之百题训练

完全零基础自学matlab之百题训练

2023-05-05 22:49| 来源: 网络整理| 查看: 265

题目:求解多项式函数的极值

以最高四次多项式函数为例,求解极值的思路如下:

1.首先是将用户所求的函数输入到计算机中,可以采取input来解决;

2.然后是求解此函数的导数,本题中,为了体现对function的运用,故而作者自己写了一个求解导数的function函数,命名为der_function();

3.运用极值点导数为0的性质,运用上述的der_function()函数,寻找其为0或者接近零的时候的自变量取值;

4.进行了上述步骤之后,我们只是找到了驻值点,故而还需进行检验,即检验求得的导数为0的点究竟是极值点还是驻值点;

clear all

%获取多项式的系数

n1=input('一次方系数为 ');

n2=input('二次方系数为 ');

n3=input('三次方系数为 ');

n4=input('四次方系数为 ');

c=input('常数为 ');

x1=input('自变量下限为 ');

x2=input('自变量上限为 ');

fprintf('your function is %ix+%ix^2+%ix^3+%ix^4+%i',n1,n2,n3,n4,c);

 

以上为第一部分,即获取用户所求函数的代码的实现,主要是用到来 input 和 fprintf 两个函数的

然后是第二部分,即求导数的实现,为了体现对function函数的应用,作者没有用 diff 的求导方式,而是利用导数的斜率定义,新建了一个function,通过求x点和x点附近一点之间的割线斜率来近似等于在x点的导数。

以下为function内容:

function num=der_function (a,b,c,d,x)    %依次为[一次方系数,二次方系数,三次方系数,四次方系数,变量]

 

 y2=a*(x+0.00001)+b*(x+0.00001)^2+c*(x+0.00001)^3+d*(x+0.00001)^4;

 

 y1=a*x+b*x^2+c*x^3+d*x^4;

 

 num=(y2-y1)/0.00001;

end

以上方法求导的精度在于0.0001这个数字,根据高等数学的知识,这个0.0001如果变得更小,比如0.0000001,那么最终求出来的导数就会更加精确,这里的精度当然是在允许的情况下越高越好。

接下来就需要来寻找导数为0的x值

%先找到所有导数接近0的x值

i=1;

for(x=x1:0.001:x2)

    if(abs(der_function(n1,n2,n3,n4,x)-0)fun(num(m)-0.001))&(fun(num(m))



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3