查看: 2791|回复: 4|关注: 0

[已解决] matlab用solve函数解方程时不能得到数值解

[复制链接]

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
用matlab中solve函数解一个方程时给出了很多限制条件,并不能得到数值解,请问怎么解决?谢谢啦代码如下,就是公式里除了alpha其余全是已知量,为了输入一个delta的值解出一个alpha的值。

delta=10;
n_o=1.528;
n_e=1.7297;
lambda=632.8e-9;
d=30e-6;

alpha=solve('tan(alpha)=((n_e^2-n_o^2)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2))^0.5)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))^0.5))/(n_o^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))+n_e^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2)))','alpha');




回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2338

帖子

705

最佳答案
  • 关注者: 196
发表于 2019-9-15 21:41:36 | 显示全部楼层
  1. alpha = vpasolve([tan(alpha)==((n_e^2-n_o^2)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2))^0.5)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))^0.5))/(n_o^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))+n_e^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2)))],[alpha])
复制代码


alpha = 0.083898634335274686247749002355
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-9-15 21:50:41 | 显示全部楼层
TouAkira 发表于 2019-9-15 21:41
alpha = 0.083898634335274686247749002355

您好,首先非常感谢您的回答,我复制了您写的代码发现了如下错误,请问是什么原因导致的?
错误提示:
错误使用 alpha
输出参数太多。
回复此楼 已获打赏: 0 积分

举报

入门

155 麦片

财富积分


50500


0

主题

107

帖子

11

最佳答案
  • 关注者: 7
发表于 2019-9-16 08:26:29 | 显示全部楼层 |此回复为最佳答案
5641456 发表于 2019-9-15 21:50
您好,首先非常感谢您的回答,我复制了您写的代码发现了如下错误,请问是什么原因导致的?
错误提示:
错 ...

试一下这个:

clear;clc
syms alpha
delta=10;
n_o=1.528;
n_e=1.7297;
lambda=632.8e-9;
d=30e-6;

d = vpasolve(tan(alpha)==((n_e^2-n_o^2)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2))^0.5)*(((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))^0.5))/(n_o^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_e^2)/(n_o^2-n_e^2))+n_e^2*((((2*pi*d*n_o*n_e)/((2*pi*d*n_o+delta*lambda)*cos(alpha)))^2-n_o^2)/(n_e^2-n_o^2))),alpha)
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-9-16 10:12:05 | 显示全部楼层
chuyanwu2012 发表于 2019-9-16 08:26
试一下这个:

clear;clc

非常感谢
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表