matlab中这个方程如何求T值

matlab中这个方程如何求T值,第1张

fzero函数的意思就是查找你定义的函数在给定的初值附近的零点,所以你可以根据你输入的P的范围计算出来T的范围,然后将函数的初值设置成T范围的中间值,这样如果你的函数有唯一零点的话,就可以稳定的找到。fzero(@(T) exp(A/T+B+CT+D(1-T/F)^15)-P,tmiddle);tmiddle是可能T的中间值。

你可以使用下面的代码:

a=0:01:10;

y=017cos(56sqrt(a))cos(047sqrt(a))-0163sin(56sqrt(a))sin(047sqrt(a))

-0119sqrt(a)sin(56sqrt(a))cos(047sqrt(a))-0104sqrt(a)cos(56sqrt(a))sin(047sqrt(a))

+(006cos(56sqrt(a))sin(047sqrt(a))+0053sin(56sqrt(a))cos(047sqrt(a)))/sqrt(a);

plot(a,y);

hold on

grid on;

a1= fzero (@(a)017cos(56sqrt(a))cos(047sqrt(a))-0163sin(56sqrt(a))sin(047sqrt(a))-0119sqrt(a)sin(56sqrt(a))cos(047sqrt(a))-0104sqrt(a)cos(56sqrt(a))sin(047sqrt(a))+(006cos(56sqrt(a))sin(047sqrt(a))+0053sin(56sqrt(a))cos(047sqrt(a)))/sqrt(a),1)

plot([a1],[0],'r')

或者你可以把你的fzero函数中的a换为x,因为这个函数默认的自变量是x,其他的不行。

祝你学习愉快!

出错原因:

按照下面的调用方式

fzero('ax^2-4',1)

传递给fzero函数的只是一个字符串,与变量a的值没有任何关系。字符串在fzero中进行预处理,会被转换成一个inline函数,该函数包含x和a两个变量,而x被视为求零点的主变量,在迭代计算过程中自动调整取值,但a属于未知量,所以会提示a未定义。

解决方法:

定义x为符号变量,然后把sym类型的方程转为字符串或inline函数再调用fzero求解。

示例:

>> syms x

>> a=1;

>> fzero(inline(char(ax^2-4)),1)

ans =

     2 

>> fzero(char(ax^2-4),1)

ans =

     2

以上就是关于matlab中这个方程如何求T值全部的内容,包括:matlab中这个方程如何求T值、matlab fzero 命令运行时错误、matlab 中调用 fzero('a*x^2-4',1)时候,里面函数有个a值是之前定义的常量,比如a=1,但是运行错误。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9879057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存