大家好,欢迎来到IT知识分享网。
求导
clc;clear;
%% 使用matlab建立多项式
p = [4 3 2 1 1]; %确定各项系数和常数项。放在一个数组里面。
y = poly2sym(p); %创建目标多项式,函数返回一个符号变量,即我们的函数
disp(y); %显示
clc;clear;
%% 使用根建立多项式
r = [1 2 3]; %随意编一些根
p = poly(r); %调用求多项式的函数
y = poly2sym(p); %得到多项式的符号变量
disp(y);
clc; clear;
%% 对多项式进行求导
p = [4 3 2 1 1]; %建立多项式
y = poly2sym(p); %得到多项式的符号变量
temp_str = sprintf('得到多项式:\ny = %s', y); %将式子格式化到一个字符串中
disp(temp_str);
p_1 = polyder(p); %求一次导,注意polyder求导传递的是p而不是y
y_1 = poly2sym(p_1); %转化为符号变量
temp_str = sprintf('求导结果:\ny_1 = %s\n求导后系数是:[%d %d %d %d]', y_1, p_1);
disp(temp_str);
%% 乘积求导
clc; clear;
p_1 = [4 4 2];
p_2 = [2 4 5];
y_1 = poly2sym(p_1);
y_2 = poly2sym(p_2); % 转化为符号变量
temp_str = sprintf('原来的两个函数为:\n 1. y_1 = %s\n 2. y_2 = %s', y_1, y_2);
disp(temp_str);
res_p = polyder(p_1, p_2); % 乘积求导后的系数,k = polyder(a,b) 返回多项式 a 和 b 的乘积的导数
res_y = poly2sym(res_p); %转化为符号变量
temp_str = sprintf('结果为:y = %s', res_y);
disp(temp_str);
%% 商求导
clc; clear;
p_1 = [4 4 2];
p_2 = [2 4 5]; % 随意胡诌几个数
y_1 = poly2sym(p_1);
y_2 = poly2sym(p_2); % 转化为符号变量
temp_str = sprintf('原来的两个函数为:\n 1. y_1 = %s\n 2. y_2 = %s', y_1, y_2);
disp(temp_str);
[res_p_Num, res_p_Den] = polyder(p_1, p_2);
% 注意此处,与乘积求导几乎一样,只是返回值不同,
% 前面的是分子,后面的是分母
res_y_Num = poly2sym(res_p_Num);
res_y_Den = poly2sym(res_p_Den); %转化为符号变量numerator denominator
temp_str = sprintf('结果为:y = (%s)/(%s)', res_y_Num, res_y_Den);
disp(temp_str);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25611.html