【问题标题】:Calculate the value of the derivative of several parameters计算几个参数的导数
【发布时间】:2021-05-03 16:03:44
【问题描述】:

我想通过 Hazen-Williams 方程开始敏感性分析。

定义变量和导数后,我不知道如何将数值应用于每个派生组件。

我想在推导后粘贴每个变量的值以获得最终答案。我该怎么做?

clc;
clear;
close all;
%%
% S=dO/dP      S:Absolute Sensivity;
% Sr=(dO/dP)*(P/O)     Sr:Relative Sensivity;
syms L Q C D Y;

Hf = 10.654*(Y)*L*(Q^1.852)*(C^-1.852)*(D^-4.87);
So = zeros(4,2);

dy=diff(Hf,Y);
dQ=diff(Hf,Q);
dC=diff(Hf,C);
dD=diff(Hf,D);

【问题讨论】:

  • 你看subs了吗?
  • @cris-luengo 我是初学者
  • 这有什么关系?这是否意味着您无法阅读我链接的文档?对不起,我只是不明白你的回复。
  • @cris-luengo 我读了你链接的潜艇,但我不能把它推广到多项式

标签: matlab symbolic-math derivative


【解决方案1】:

最后,我找到了方法。

tic
clc;
clear;
close all;
%%
y=input('input λ: ');
l=input('input Lenght(m): ') ;
q=input('input Q(discharge): ') ;
c=input('input C(Heizen-wiliamz): ') ;
d=input('input Diameter(m): ') ;

% S=dO/dP      S:Absolute Sensivity;
% Sr=(dO/dP)*(P/O)     Sr:Relative Sensivity;
syms L Q C D Y;

Hf = 10.654*(Y)*L*(Q^1.852)*(C^-1.852)*(D^-4.87);
O=double(subs(Hf,{Y,L,Q,C,D},{y,l,q,c,d}));
So = zeros(4,2);

dy=diff(Hf,Y);
dQ=diff(Hf,Q);
dC=diff(Hf,C);
dD=diff(Hf,D);
dL=diff(Hf,L);

SA=zeros(5,2);
SA(1,1)=double(subs(dy,{Y,L,Q,C,D},{y,l,q,c,d}));
SA(1,2)=SA(1,1)*y/O;
SA(2,1)=double(subs(dQ,{L,Q,Y,C,D},{l,q,y,c,d}));
SA(2,2)=SA(2,1)*q/O;
SA(3,1)=double(subs(dC,{L,Q,Y,C,D},{l,q,y,c,d}));
SA(3,2)=SA(3,1)*c/O
SA(4,1)=double(subs(dD,{L,Q,Y,C,D},{l,q,y,c,d}));
SA(4,2)=SA(4,1)*d/O
SA(5,1)=double(subs(dL,{L,Q,Y,C,D},{l,q,y,c,d}));
SA(5,2)=SA(5,1)*l/O
clc;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2018-08-10
    • 2020-01-03
    相关资源
    最近更新 更多