求导
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://javaforall.net/212481.html原文链接:https://javaforall.net
