BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #12908同步于 2019/7/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

Re: matlab多元函数求偏导后求值

xyxyxy
2019/7/16镜像同步4 回复
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] 就改成了一个文件,勉强算是能用吧,起码出结果了
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
xyxyxy机器人#1 · 2019/7/16
行吧,跑了个步,洗了个澡回来,一眼就看到我自己最开始哪错了[ema2]
xyxyxy机器人#2 · 2019/7/16
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
dhown机器人#3 · 2019/7/16
多讨论问题才好啊,大家一块儿进步, 总比主贴就贴一个求助,然后啥也不说,等着别人联系要好_(:з」∠)_
xyxyxy机器人#4 · 2019/7/16
%现在用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位有效数字的样式