返回信息流syms x1 x2 x3 x4 x5 x6 x7;
syms df1 df2 df3 df4 df5 df6 df7;
x=[x1 x2 x3 x4 x5 x6 x7];
f = 174.42*(x(1)/x(5))*(x(3)/(x(2)-x(1)))^0.85*((1-2.62*((1-0.36*(x(4)/x(2))^(-0.56))^1.5)*(x(4)/x(2))^1.16)/(x(6)*x(7)))^0.5;
df=[df1 df2 df3 df4 df5 df6 df7];
for i=1:7
df(i)=diff(f,x(i));
end
xx=[0.1 0.3 0.1 0.1 1.5 16 0.75];
ff=[0 0 0 0 0 0 0];
for i=1:7
ff(i)=subs(df(i),x,xx);
end
ff[ema0][ema0]
就改成了一个文件,勉强算是能用吧,起码出结果了
这是一条镜像帖。来源:北邮人论坛 / matlab / #12908同步于 2019/7/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
Re: matlab多元函数求偏导后求值
xyxyxy
2019/7/16镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
main.m
syms x1 x2 x3 x4 x5 x6 x7;
syms df1 df2 df3 df4 df5 df6 df7;
x=[x1 x2 x3 x4 x5 x6 x7];
f = fun(x);
df=[df1 df2 df3 df4 df5 df6 df7];
for i=1:7
df(i)=diff(f,x(i));
end
%xx=[0.1 0.3 0.1 0.1 1.5 16 0.75];
xx=[0.096229720624201 0.307846912287905 0.097690643921992 0.100594211183626 1.538712362193381 16.209748321921545 0.759609644335269];
ff=[0 0 0 0 0 0 0];
for i=1:7
ff(i)=subs(df(i),x,xx);
end
ff
f=double(subs(f,x,xx))
%我也觉得在北邮人论坛上放这么基础的问题很丢人hhh
%现在用taylor函数直接一阶展开的问题也解决了,三个小时前我一定是个傻子[ema9]
%有始有终,发一下main.m
syms x1 x2 x3 x4 x5 x6 x7;
x=[x1 x2 x3 x4 x5 x6 x7];
f = fun(x);%这个在fun.m里面
xx=[0.1 0.3 0.1 0.1 1.5 16 0.75];
%xx=[0.096229720624201 0.307846912287905 0.097690643921992 0.100594211183626 1.538712362193381 16.209748321921545 0.759609644335269];这个是我建模里面的令一个数据,与这里无关,我宁愿打一段话也不想直接删
f_=taylor(f,x,xx,'order',2);%f是函数的符号表达式,x是变量(我这是用一个数组表示的多元函数),xx是展开点,order是展开阶数
f_=vpa(f_,6)%matlab符号函数计算完只显示分数的设计简直反人类,vpa对符号函数f_完成把分数系数转化为含6位有效数字的样式