楼主: 米思奇
8787 1

[问答] matlab 怎么提取符号变量中的值呢??? [推广有奖]

  • 0关注
  • 2粉丝

本科生

73%

还不是VIP/贵宾

-

威望
0
论坛币
1757 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
787 点
帖子
29
精华
0
在线时间
174 小时
注册时间
2012-11-7
最后登录
2025-10-27

楼主
米思奇 发表于 2015-10-16 22:10:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
syms z
iv=g*K/(b*s0)-a*g/b;
eq1=(exp(g*z)-1)*exp(h*z.^2/2)-iv
solve(eval(eq1))


除了z 其他变量都有数值,但是需要迭代数值,所以不能直接写在solve里面,这样计算出来的结果Z是符号变量,
我要用它计算下面这个函数
  P=normcdf(z,0,1);
但是始终都有问题,已经试用了double 等常用函数了,都不可以,求大神指教呀???

比如说,结果是这样的
>> syms z
>> eq1 =exp(z^2/200000)*(exp((23*z)/100) - 1) + 299/490
eq1 =
exp(z^2/200000)*(exp((23*z)/100) - 1) + 299/490
>> z=solve(eval(eq1))
z =
z = -4.0956551315107424897773903470668
错误:
P=normcdf(z,0,1);
??? Error using ==> erfcore
Input must be single or double.

Error in ==> erfc at 23
y = erfcore(x,1);

Error in ==> normcdf at 68
p = 0.5 * erfc(-z ./ sqrt(2));

double(z)
??? Error using ==> sym.double at 29
DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Lab Atl matlab

沙发
Xaero 发表于 2015-10-21 13:53:01
它提示你了啊, 试试vpa() 函数?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-5 14:18