変数に代入する数値を​全く変えずに方程式を​作成したいです

4 visualizaciones (últimos 30 días)
健太郎 石崎
健太郎 石崎 el 14 de En. de 2022
Comentada: 健太郎 石崎 el 24 de En. de 2022
%変数に代入する数値を全く変えずに方程式を作成したいです
%方程式(1)のindecx1,indecy1,cに以下の数値を代入して、
d =
(((sqrt((R-sqrt((indecx1-X).^2+(indecy1-Y).^2)).^2)-c).^2)./(e1.^2))-(1)%(R,X,Yは方程式における変数)
indecx1 = -16.4629 -14.8642 -13.2506 0 -11.6236 -9.9849 -8.3361 -6.6790 -5.0152 -3.3462 -1.6740
indecy1 = -50.1257 -50.6228 -51.0690 -52.7600 -51.4637 -51.8066 -52.0973 -52.3355 -52.5211 -52.6538 -52.7334
e1 = 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200
c = 0.7603 0.6018 0.5224 0.6211 0.3346 0.4473 0.6014 0.3080 0.3824 0.5105 0.6660
%(cについて、実際はこのdnの値です。cとdnの順番は違っています。)
dn = 0.760289 0.6018 0.522381 0.334553 0.447339 0.601379 0.307978 0.382425 0.510522 0.666044 0.62107
%以下のような方程式を作成しようと思っています。
dtotal = 2500.0*(((R - 1.0*((Y + 52.76)^2 + X^2)^(1/2))^2)^(1/2) - 0.62107)^2 + 2500.0*(((R - 1.0*((X + 8.33614)^2 + (Y + 52.0973)^2)^(1/2))^2)^(1/2) - 0.601379)^2 + 2500.0*(((R - 1.0*((X + 16.4629)^2 + (Y + 50.1258)^2)^(1/2))^2)^(1/2) - 0.760289)^2 + 2500.0*(((R - 1.0*((Y + 51.069)^2 + (X + 13.2506)^2)^(1/2))^2)^(1/2) - 0.522381)^2 + 2500.0*(((R - 1.0*((Y + 52.6538)^2 + (X + 3.34625)^2)^(1/2))^2)^(1/2) - 0.510522)^2 + 2500.0*(((R - 1.0*((X + 11.6236)^2 + (Y + 51.4637)^2)^(1/2))^2)^(1/2) - 0.334553)^2 + 2500.0*(((R - 1.0*((X + 5.01515)^2 + (Y + 52.5211)^2)^(1/2))^2)^(1/2) - 0.382425)^2 + 2500.0*(((R - 1.0*((Y + 52.3355)^2 + (X + 6.67904)^2)^(1/2))^2)^(1/2) - 0.307978)^2 + 2500.0*(((R - 1.0*((Y + 50.6228)^2 + (X + 14.8642)^2)^(1/2))^2)^(1/2) - 0.6018)^2 + 2500.0*(((R - 1.0*((Y + 52.7334)^2 + (X + 1.67397)^2)^(1/2))^2)^(1/2) - 0.666044)^2 + 2500.0*(((R - 1.0*((X + 9.98489)^2 + (Y + 51.8066)^2)^(1/2))^2)^(1/2) - 0.447339)^2-(2)
%(dtotal=sum(d))
%しかし、上(2)のように方程式を作成すると、出力される式において、出力される数値の桁数が変わることがあります。
%どのようにしたら、方程式(1)のindecx1,indecy1,cに代入する数値が変更されることなく(2)のような方程式を作成することができるのでしょうか?
  2 comentarios
健太郎 石崎
健太郎 石崎 el 14 de En. de 2022
(2)はシンボリック変数R,X,Yを使用して作成しました。
健太郎 石崎
健太郎 石崎 el 14 de En. de 2022
>%しかし、上(2)のように方程式を作成すると、出力される式において、出力される数値の桁数が変わることがあります。
例えば、(2)の2500.0*(((R - 1.0*((Y + 52.6538)^2 + (X + 3.34625)^2)^(1/2))^2)^(1/2) - 0.510522)^2の部分で、
3.34625は本来3.3462です。
(2)自体、digits(6),d=vpa((((sqrt((R-sqrt((indecx1-X).^2+(indecy1-Y).^2)).^2)-c).^2)./(e1.^2)))として、計算しています。
言葉足らずで申し訳ございません。

Iniciar sesión para comentar.

Respuestas (1)

Hernia Baby
Hernia Baby el 17 de En. de 2022
出力形式の問題だと思います。
format を参照してみてください。
clear
c = [0.7603, 0.6018, 0.5224, 0.6211, 0.3346, 0.4473, 0.6014, 0.3080, 0.3824 , 0.5105, 0.6660];
dn =[0.760289, 0.6018, 0.522381, 0.334553, 0.447339, 0.601379, 0.307978, 0.382425, 0.510522, 0.666044, 0.62107];
format long
[c;dn]
ans = 2×11
0.760300000000000 0.601800000000000 0.522400000000000 0.621100000000000 0.334600000000000 0.447300000000000 0.601400000000000 0.308000000000000 0.382400000000000 0.510500000000000 0.666000000000000 0.760289000000000 0.601800000000000 0.522381000000000 0.334553000000000 0.447339000000000 0.601379000000000 0.307978000000000 0.382425000000000 0.510522000000000 0.666044000000000 0.621070000000000
format short
[c;dn]
ans = 2×11
0.7603 0.6018 0.5224 0.6211 0.3346 0.4473 0.6014 0.3080 0.3824 0.5105 0.6660 0.7603 0.6018 0.5224 0.3346 0.4473 0.6014 0.3080 0.3824 0.5105 0.6660 0.6211
  3 comentarios
Hernia Baby
Hernia Baby el 21 de En. de 2022
値の一致については「a == b」のようにして、logical値が1になるかを確認してみてください。 1であれば表示形式の違いになります。
健太郎 石崎
健太郎 石崎 el 24 de En. de 2022
確認します。
多くのことを教えて頂きありがとうございます。

Iniciar sesión para comentar.

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!